[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