浏览代码

Return error from `softPwmCreate` if `pthread_create` fails

If `pthread_create` fails, `newPin` will never get reset to -1 and process would hang. This change will return from `softPwmCreate` immediately if  `pthread_create` returns a non-zero value and avoid hanging forever.
Peter Kovary 2 年之前
父节点
当前提交
772e1198dd
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      wiringPi/softPwm.c

+ 3 - 0
wiringPi/softPwm.c

@@ -153,6 +153,9 @@ int softPwmCreate (int pin, int initialValue, int pwmRange)
   newPin   = pin ;
   res      = pthread_create (&myThread, NULL, softPwmThread, (void *)passPin) ;
 
+  if (res != 0)
+    return res ;
+  
   while (newPin != -1)
     delay (1) ;