Problem with thread specific data destructor
Hi,
I'm trying to debug a problem [1] with building the Licq packages on
Hurd. They fail in a unittest that tests thread specific data
destructor.
I downloaded a qemu image and spent some time debugging it without any
luck. Everything seems ok, but the destructor is never called.
To see if it was a problem with the pthread implementation I created a
simple test program [2]. The "problem" is that this works, so now I
don't really know where to continue debugging.
Does anyone on this list have an idea where the problem might be or a
pointer to where I should continue searching?
Please CC me as I'm not subscribed to the list.
Thanks,
// Erik
[1] - https://buildd.debian.org/status/fetch.php?pkg=licq&arch=hurd-i386&ver=1.5.1-1&stamp=1309606470
[2] -
#include <pthread.h>
#include <stdio.h>
void deleter(void* data)
{
printf("in deleter with %p\n", data);
}
void* threadfn(void* data)
{
pthread_setspecific(*(pthread_key_t*)data, (void*)1);
return NULL;
}
int main()
{
pthread_key_t key;
pthread_key_create(&key, deleter);
pthread_t thread;
pthread_create(&thread, 0, threadfn, &key);
pthread_join(thread, 0);
pthread_key_delete(key);
return 0;
}
--
Erik Johansson
Home Page: http://ejohansson.se/
PGP Key: http://ejohansson.se/erik.asc
Reply to: