Justus Winter, le Sat 09 Nov 2013 14:21:09 +0100, a écrit :
> 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.
Ack.
> * 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 4003cfb..c73305d 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");
> }
> --
> 1.7.10.4
>
>
--
Samuel
<s> bah, j'aime bien les feux d'artifices, mais j'ai peur de me prendre un
boeing sur le coin de la gueule si je vais sur le pont de brooklyn
-+- #ens-mim - 11 septembre forever -+-