Explorar o código

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 %!s(int64=2) %!d(string=hai) anos
pai
achega
772e1198dd
Modificáronse 1 ficheiros con 3 adicións e 0 borrados
  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) ;