# HG changeset patch # User jlarmour # Date 1153238446 0 # Node ID 95427ba4245a7e5b0b742f0806946378a4f2a44f # Parent cf44f62361c7d172e19a6c00074ba61801af5f43 * src/signal.cxx (pause): Although already POSIX compliant, if we wait for all signals, behaviour is more Linux-like. diff --git a/packages/compat/posix/current/ChangeLog b/packages/compat/posix/current/ChangeLog --- a/packages/compat/posix/current/ChangeLog +++ b/packages/compat/posix/current/ChangeLog @@ -1,3 +1,8 @@ +2006-07-18 Jonathan Larmour + + * src/signal.cxx (pause): Although already POSIX compliant, if we wait + for all signals, behaviour is more Linux-like. + 2006-06-13 Dan Jakubiec * src/time.cxx: (nanosleep): Fixed to return EINTR when it is diff --git a/packages/compat/posix/current/src/signal.cxx b/packages/compat/posix/current/src/signal.cxx --- a/packages/compat/posix/current/src/signal.cxx +++ b/packages/compat/posix/current/src/signal.cxx @@ -10,6 +10,7 @@ // This file is part of eCos, the Embedded Configurable Operating System. // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. // Copyright (C) 2002 Nick Garnett +// Copyright (C) 2004 eCosCentric Ltd. // // 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 @@ -1068,12 +1069,9 @@ 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 - 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(); SIGNAL_RETURN(EINTR);