Hi Gilles,

I too have encountered this issue with the POSIX skin.
I think it may have to do with the order in which the posix skin hooks
are run on thread deletion.

In ksrc/skins/posix/syscall.c
xnpod_remove_hook(XNHOOK_THREAD_DELETE, &__shadow_delete_hook);

and ksrc/skins/posix/thread.c
xnpod_add_hook(XNHOOK_THREAD_DELETE, thread_delete_hook);

The thread_delete_hook seems to run first causing the thread data to be
destroyed before __shadow_delete_hook has a chance to run.

This results in __shadow_delete_hook failing in various cases.

An example of an error case linked with this would be the failure to
remove the thread key from the hash bucket after application exit.  The
next run of an application can then result in pthread_setschedparam
failing to create a shadow since it likely finds an id in the hash
bucket already.

Regards,
Andy

 

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to