소스 검색

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 년 전
부모
커밋
e8cca2315a
1개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  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;