changeset 2857:7faaf738e2d0

* src/signal.cxx (pause): Revert change of 2006-07-18 pending updating of the signal1, signal3 and timer1 tests. [ Bugzilla 1000689, 1000690 ]
author jld
date Wed, 25 Mar 2009 08:03:56 +0000
parents 83eb6becc0ee
children d01e3ad555ec
files packages/compat/posix/current/ChangeLog packages/compat/posix/current/src/signal.cxx
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/packages/compat/posix/current/ChangeLog
+++ b/packages/compat/posix/current/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-25  John Dallaway  <john@dallaway.org.uk>
+
+	* src/signal.cxx (pause): Revert change of 2006-07-18 pending
+	updating of the signal1, signal3 and timer1 tests.
+	[ Bugzilla 1000689, 1000690 ]
+
 2008-03-28  John Dallaway  <jld@ecoscentric.com>
 
 	* tests/tm_basic.cxx: Rename test to tm_posix.cxx.
@@ -1105,7 +1111,7 @@ 2000-03-24  Nick Garnett  <nickg@cygnus.
 ## ####GPLCOPYRIGHTBEGIN####                                                
 ## -------------------------------------------                              
 ## This file is part of eCos, the Embedded Configurable Operating System.   
-## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
 ##
 ## This program is free software; you can redistribute it and/or modify     
 ## it under the terms of the GNU General Public License as published by     
--- a/packages/compat/posix/current/src/signal.cxx
+++ b/packages/compat/posix/current/src/signal.cxx
@@ -8,7 +8,7 @@
 // ####ECOSGPLCOPYRIGHTBEGIN####                                            
 // -------------------------------------------                              
 // This file is part of eCos, the Embedded Configurable Operating System.   
-// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2009 Free Software Foundation, Inc.
 //
 // eCos is free software; you can redistribute it and/or modify it under    
 // the terms of the GNU General Public License as published by the Free     
@@ -1066,9 +1066,12 @@ externC int pause( void )
 
     // Check for any pending signals that can be delivered and
     // if there are none, wait for a signal to be generated
-    while( !cyg_deliver_signals() )
+    if( !cyg_deliver_signals() )
         signal_sigwait.wait();
 
+    // Now check again for some signals to deliver
+    cyg_deliver_signals();
+    
     signal_mutex.unlock();
     
     SIGNAL_RETURN(EINTR);