... | ... |
@@ -59,9 +59,11 @@ static void onas_fan_exit(int sig) |
59 | 59 |
logg("*ScanOnAccess: onas_fan_exit(), signal %d\n", sig); |
60 | 60 |
|
61 | 61 |
close(onas_fan_fd); |
62 |
- |
|
63 |
- pthread_kill(ddd_pid, SIGUSR1); |
|
64 |
- pthread_join(ddd_pid, NULL); |
|
62 |
+ |
|
63 |
+ if (ddd_pid > 0) { |
|
64 |
+ pthread_kill(ddd_pid, SIGUSR1); |
|
65 |
+ pthread_join(ddd_pid, NULL); |
|
66 |
+ } |
|
65 | 67 |
|
66 | 68 |
pthread_exit(NULL); |
67 | 69 |
logg("ScanOnAccess: stopped\n"); |
... | ... |
@@ -119,6 +121,8 @@ void *onas_fan_th(void *arg) |
119 | 119 |
pthread_attr_t ddd_attr; |
120 | 120 |
struct ddd_thrarg *ddd_tharg = NULL; |
121 | 121 |
|
122 |
+ ddd_pid = 0; |
|
123 |
+ |
|
122 | 124 |
/* ignore all signals except SIGUSR1 */ |
123 | 125 |
sigfillset(&sigset); |
124 | 126 |
sigdelset(&sigset, SIGUSR1); |