On Tuesday 28 August 2012 09:16, Carmelo AMOROSO wrote: > On 28/08/2012 9.07, mail...@gmx.de wrote: > > I'm working with current uClibc and had problems with POSIX timers. > > > > I use the timer with SIGEV_THREAD to create one thread each timer event. It > > seems there is a race condition between the thread waiting on SIGCANCEL > > signal > > (timer_helper_thread in timer_routine.c) and the default signal handler for > > this > > signal. > > Many timer events will be lost, because they will be dequeued before > > rt_sigtimedwait() could catch it. > > > > I found a change on creating the helper thread. (Please see: > > http://git.uclibc.org/uClibc/commit/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c?id=162cfaea20d807f0ae329efe39292a9b22593b41) > > > > After reverting this change, it works for me as expected. > > Could anybody remember, why this change was necessary? > > > > I think the comment is wrong: > > /*__sigaddset (&ss, SIGCANCEL); - already done by sigfillset */ > > > > Currently SIGCANCEL will not be blocked by sigfillset, I had to reenable the > > __sidaddset() comment. > > > > I already asked Denys Vlasenko via mail, but didn't get an answer so far. > > > > Because I'm not subscribed to your bugtracker (and not intent to do so), > > could > > anybody please report a bug against uClibc or did I miss something and this > > change make any sense? > > > > > > Thank you in advance, > > > > Erik > > > > we have spotted this issue recently as well, indeed the modifications > you mentioned have introduced a regression. > I have the fix in the STLinux uClibc repo > (http://git.stlinux.com/?p=stm/uclibc.git;a=commit;h=1eed623153b5139c8b5dca08030b3a4a1838d4db). > > It's on my list for upstream to uclibc.org as well.
Sorry for creating this problem :( Double sorry for not being responsive for the emails :( :( -- vda _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc