This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1000690]/home/lunn/eCos/work/install/tests/compat/posix/current/tests/signal3 runsforever


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]