Throughout, eliminate argument to sig_dispatch_pending.
* exceptions.cc (setup_handler): Move non-interruptible condition handling (back) to wait_sig (as suggested by Pierre Humblet). (set_process_mask): Don't worry about calling sig_dispatch_pending from sigthread since it is detected in the function anyway. (sig_handle): Eliminate thisproc arg. Don't call sig_dispatch_pending on SIGCONT since that should happen automatically. * sigproc.cc (sig_dispatch_pending): Eliminate justwake argument. Just return when called from sigthread. (wait_sig): Change some variables to bool. Change inner while to an if. Move uninterruptible signal handling here. (sigproc_terminate): Don't call sig_dispatch_pending. Just increment semaphore on exit. * speclib: Use slightly different (but still flawed) method for determining symbols to extract from libraries.
This commit is contained in:
@@ -369,7 +369,7 @@ readv (int fd, const struct iovec *const iov, const int iovcnt)
|
||||
|
||||
while (1)
|
||||
{
|
||||
sig_dispatch_pending (0);
|
||||
sig_dispatch_pending ();
|
||||
sigframe thisframe (mainthread);
|
||||
|
||||
cygheap_fdget cfd (fd);
|
||||
@@ -441,7 +441,7 @@ extern "C" ssize_t
|
||||
writev (const int fd, const struct iovec *const iov, const int iovcnt)
|
||||
{
|
||||
int res = -1;
|
||||
sig_dispatch_pending (0);
|
||||
sig_dispatch_pending ();
|
||||
const ssize_t tot = check_iovec_for_write (iov, iovcnt);
|
||||
|
||||
sigframe thisframe (mainthread);
|
||||
@@ -497,7 +497,7 @@ open (const char *unix_path, int flags, ...)
|
||||
int res = -1;
|
||||
va_list ap;
|
||||
mode_t mode = 0;
|
||||
sig_dispatch_pending (0);
|
||||
sig_dispatch_pending ();
|
||||
sigframe thisframe (mainthread);
|
||||
|
||||
syscall_printf ("open (%s, %p)", unix_path, flags);
|
||||
|
Reference in New Issue
Block a user