This is the mail archive of the
ecos-bugs@sourceware.org
mailing list for the eCos project.
[Bug 1000690]/home/lunn/eCos/work/install/tests/compat/posix/current/tests/signal3 runsforever
- From: bugzilla-daemon at ecoscentric dot com
- To: ecos-bugs at ecos dot sourceware dot org
- Date: Mon, 23 Mar 2009 10:41:28 +0000
- Subject: [Bug 1000690]/home/lunn/eCos/work/install/tests/compat/posix/current/tests/signal3 runsforever
- References: <bug-1000690-13@http.bugs.ecos.sourceware.org/>
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1000690
--- Comment #3 from John Dallaway <john@dallaway.org.uk> 2009-03-23 10:41:27 ---
The underlying issue is readily observed in the POSIX timer1 test. Both thread1
and thread2 wait indefinitely at the call to pause(). This issue was introduced
with the following change:
2006-07-18 Jonathan Larmour <jifl@eCosCentric.com>
* src/signal.cxx (pause): Although already POSIX compliant, if we wait
for all signals, behaviour is more Linux-like.
The patch fragment for pause() in signal.cxx revision 1.19 looks like this:
// Check for any pending signals that can be delivered and
// if there are none, wait for a signal to be generated
- if( !cyg_deliver_signals() )
+ while( !cyg_deliver_signals() )
signal_sigwait.wait();
- // Now check again for some signals to deliver
- cyg_deliver_signals();
-
signal_mutex.unlock();
It would appear that the POSIX tests are not written to accommodate the more
Linux-like behaviour implemented by this change. I have verified that signal1
(ref Bugzilla 1000689), timer1 and signal3 all PASS on target 'psim' when this
change is reverted.
--
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.