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

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: