From a470cb8a86025fe76570badb7f268b08b4969f40 Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Thu, 18 Dec 2008 15:06:58 +0100 Subject: Make the number of reserve messengers a function of the number of threads. 2008-12-18 Neal H. Walfield * message-buffer.c (num_threads): New function. (BUFFERS_LOW_WATER): Define in terms of the number of threads. (BUFFERS_HIGH_WATER): Likewise. --- libhurd-mm/ChangeLog | 6 ++++++ libhurd-mm/message-buffer.c | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/libhurd-mm/ChangeLog b/libhurd-mm/ChangeLog index ca8da4a..e19d1d9 100644 --- a/libhurd-mm/ChangeLog +++ b/libhurd-mm/ChangeLog @@ -1,3 +1,9 @@ +2008-12-18 Neal H. Walfield + + * message-buffer.c (num_threads): New function. + (BUFFERS_LOW_WATER): Define in terms of the number of threads. + (BUFFERS_HIGH_WATER): Likewise. + 2008-12-18 Neal H. Walfield * message-buffer.c (hurd_message_buffer_alloc): Fix compare and diff --git a/libhurd-mm/message-buffer.c b/libhurd-mm/message-buffer.c index ecb2b58..1bee6a1 100644 --- a/libhurd-mm/message-buffer.c +++ b/libhurd-mm/message-buffer.c @@ -268,8 +268,19 @@ hurd_message_buffer_free (struct hurd_message_buffer *buffer) } } -#define BUFFERS_LOW_WATER 4 -#define BUFFERS_HIGH_WATER 8 +static int +num_threads (void) +{ + extern int __pthread_num_threads __attribute__ ((weak)); + + if (&__pthread_num_threads) + return __pthread_num_threads; + else + return 1; +} + +#define BUFFERS_LOW_WATER (4 + num_threads () * 2) +#define BUFFERS_HIGH_WATER (8 + num_threads () * 3) struct hurd_message_buffer * hurd_message_buffer_alloc (void) -- cgit v1.2.3