X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fasync.c;h=7725e6d7d363e7ee17821214863525dd062e4c18;hb=d896ac2d2fbce41a0b11a0618a685adeaf18b8fe;hp=115901e637f18e532c381c1f40ceb3bcaff7ff2a;hpb=5ed1227238724959f020169f5332086439709b55;p=elogind.git diff --git a/src/shared/async.c b/src/shared/async.c index 115901e63..7725e6d7d 100644 --- a/src/shared/async.c +++ b/src/shared/async.c @@ -41,24 +41,18 @@ int asynchronous_job(void* (*func)(void *p), void *arg) { * only in long running processes. */ r = pthread_attr_init(&a); - if (r != 0) + if (r > 0) return -r; r = pthread_attr_setdetachstate(&a, PTHREAD_CREATE_DETACHED); - if (r != 0) { - r = -r; + if (r > 0) goto finish; - } r = pthread_create(&t, &a, func, arg); - if (r != 0) { - r = -r; - goto finish; - } finish: pthread_attr_destroy(&a); - return r; + return -r; } static void *sync_thread(void *p) {