[ECOS] POSIX pause() never returns
Hans Rosenfeld
rosenfeld@grumpf.hope-2000.org
Tue Jun 12 23:30:00 GMT 2007
While running some of the POSIX package testcases I noticed that pause()
never returns. I traced this problem to this patch:
http://sourceware.org/ml/ecos-patches/2006-07/msg00014.html
What happens here is that cyg_deliver_signals() is called through
posix_asr() -> cyg_posix_signal_asr() -> cyg_deliver_signals() while the
thread is waiting in pause(). After this the thread continues in the
while loop, calling cyg_deliver_signals() again. This call will return
false since there are no more signals pending, and the thread waits
again.
I don't understand the purpose of the above patch, but reverting it
makes pause() work as expected for me.
--
%SYSTEM-F-ANARCHISM, The operating system has been overthrown
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list