Browse Source

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 years ago
parent
commit
772e1198dd
1 changed files with 3 additions and 0 deletions
  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) ;