]> git.pond.sub.org Git - empserver/commitdiff
Fix the previous revision.
authorMarkus Armbruster <armbru@pond.sub.org>
Wed, 7 Jun 2006 21:39:01 +0000 (21:39 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Wed, 7 Jun 2006 21:39:01 +0000 (21:39 +0000)
src/lib/empthread/pthread.c

index f3503cf8e9b950859d4cafb13008dc7620ed860e..6cf2ffa3ed579830a4e93fb9b54cbbe5c97fa982 100644 (file)
@@ -342,7 +342,6 @@ empth_select(int fd, int flags)
   done:
     pthread_mutex_lock(&mtx_ctxsw);
     empth_restorectx();
-
 }
 
 static void
@@ -388,6 +387,7 @@ empth_wait_for_shutdown(void)
     sigemptyset(&set);
     sigaddset(&set, SIGINT);
     sigaddset(&set, SIGTERM);
+    pthread_mutex_unlock(&mtx_ctxsw);
     for (;;) {
        empth_status("waiting for signals");
        err = sigwait(&set, &sig);
@@ -396,6 +396,8 @@ empth_wait_for_shutdown(void)
            continue;
        }
        empth_status("got awaited signal %d", sig);
+       pthread_mutex_lock(&mtx_ctxsw);
+       empth_restorectx();
        return sig;
     }
 }