提交 0970cf03 编写于 作者: armink_ztl's avatar armink_ztl

[DeviceDrivers]Reset dataqueue waiting_lwm flag when suspended_push_list is empty

上级 bda65433
......@@ -20,6 +20,7 @@
* Change Logs:
* Date Author Notes
* 2012-09-30 Bernard first version.
* 2016-10-31 armink fix some resume push and pop thread bugs
*/
#include <rtthread.h>
......@@ -220,8 +221,6 @@ rt_err_t rt_data_queue_pop(struct rt_data_queue *queue,
if ((queue->waiting_lwm == RT_TRUE) &&
(queue->put_index - queue->get_index) <= queue->lwm)
{
queue->waiting_lwm = RT_FALSE;
/*
* there is at least one thread in suspended list
* and less than low water mark
......@@ -242,6 +241,7 @@ rt_err_t rt_data_queue_pop(struct rt_data_queue *queue,
}
else
{
queue->waiting_lwm = RT_FALSE;
rt_hw_interrupt_enable(level);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册