Browse Source

dev/pipe: call rx_indicate the time we resume reader

Some reader(FinSh again) would like to block on a semaphore which is
released in rx_indicate. So we should invoke rx_indicate in
_rt_pipe_resume_reader.
Grissiom 12 years ago
parent
commit
e8cca2315a
1 changed files with 4 additions and 0 deletions
  1. 4 0
      components/drivers/src/pipe.c

+ 4 - 0
components/drivers/src/pipe.c

@@ -104,6 +104,10 @@ static rt_size_t rt_pipe_read(rt_device_t dev,
 
 static void _rt_pipe_resume_reader(struct rt_pipe_device *pipe)
 {
+    if (pipe->parent.rx_indicate)
+        pipe->parent.rx_indicate(&pipe->parent,
+                                 rt_ringbuffer_data_len(&pipe->ringbuffer));
+
     if (!rt_list_isempty(&pipe->suspended_read_list))
     {
         rt_thread_t thread;