commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 03/98: libports: fix the thread counts in case the thread creatio


From: Samuel Thibault
Subject: [hurd] 03/98: libports: fix the thread counts in case the thread creation fails
Date: Tue, 14 Jan 2014 01:59:57 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch upstream
in repository hurd.

commit 9019e629679ec12c1a4c9656bab337e84f861e8c
Author: Justus Winter <address@hidden>
Date:   Fri Nov 8 14:28:26 2013 +0100

    libports: fix the thread counts in case the thread creation fails
    
    Previously the number of total threads and the number of unused
    threads was wrong if at one point the creation of a thread failed. Fix
    this by decrementing both counters that were previously optimistically
    incremented. Adjust the comment accordingly.
    
    * libports/manage-multithread.c (ports_manage_port_operations_multithread):
      Fix the thread counts in case the thread creation fails.
---
 libports/manage-multithread.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/libports/manage-multithread.c b/libports/manage-multithread.c
index 60f4c19..0c2da00 100644
--- a/libports/manage-multithread.c
+++ b/libports/manage-multithread.c
@@ -140,9 +140,13 @@ ports_manage_port_operations_multithread (struct 
port_bucket *bucket,
            pthread_detach (pthread_id);
          else
            {
-             /* XXX The number of threads should be adjusted but the code
-                and design of the Hurd servers just don't handle thread
-                creation failure.  */
+             pthread_spin_lock (&lock);
+             totalthreads--;
+             nreqthreads--;
+             pthread_spin_unlock (&lock);
+             /* There is not much we can do at this point.  The code
+                and design of the Hurd servers just don't handle
+                thread creation failure.  */
              errno = err;
              perror ("pthread_create");
            }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]