bug in gthreadpool (glib 2.0.1)?



Hi,

I think I either have found a bug in the threadpool library,
or I misunderstand it's use.

If you allocate a threadpool, but give it nothing to do
and free the thread pool again, threads keep hanging around.

Here's my test program:

#include <stdio.h>
#include <pthread.h>
#include <glib.h>

void dummy(gpointer data, gpointer user_data)
{
}

int main(int argc, char *argv[])
{
  int count = 10;
  GThreadPool *gtpool;
  g_thread_init(NULL);

  while (count--) {
    printf("step %d\n", count);
    gtpool = g_thread_pool_new(dummy, NULL, 4, TRUE, NULL);
    g_thread_pool_free(gtpool, FALSE, TRUE);
    sleep(5);
  }
  return(0);
}

I compiled it with:

cc -D_REENTRANT -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -o tt tt.c -lgthread-2.0 -lpthread -lglib-2.0

on a dual CPU redhat 7.2 machine.

If you do `ps fax ` from another terminal while this program
runs, you see the amount of threads growing.

This only happens if there are some unused threads.
I'm not into glib much, I gave it a short look, but had
to give up on it.

Regards,
Ron Arts

--
Netland Internet Services
bedrijfsmatige internetoplossingen

http://www.netland.nl   Kruislaan 419              1098 VA Amsterdam
info: 020-5628282       servicedesk: 020-5628280   fax: 020-5628281

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature



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