Pārlūkot izejas kodu

[add] a macro to be isolated while using signals in rt_mutex_take function.

chenchaoqun 5 gadi atpakaļ
vecāks
revīzija
a78c6bedea
1 mainītis faili ar 4 papildinājumiem un 0 dzēšanām
  1. 4 0
      src/ipc.c

+ 4 - 0
src/ipc.c

@@ -685,7 +685,9 @@ rt_err_t rt_mutex_take(rt_mutex_t mutex, rt_int32_t time)
     }
     else
     {
+#ifdef RT_USING_SIGNALS
 __again:
+#endif /* end of RT_USING_SIGNALS */
         /* The value of mutex is 1 in initial status. Therefore, if the
          * value is great than 0, it indicates the mutex is avaible.
          */
@@ -754,8 +756,10 @@ __again:
 
                 if (thread->error != RT_EOK)
                 {
+#ifdef RT_USING_SIGNALS
                     /* interrupt by signal, try it again */
                     if (thread->error == -RT_EINTR) goto __again;
+#endif /* end of RT_USING_SIGNALS */
 
                     /* return error */
                     return thread->error;