* exceptions.cc (handle_sigsuspend): Force pending signal delivery before
waiting for signals to happen. * signal.cc (sleep): Force pending signal delivery before sleeping. (usleep): Ditto. (signal): Force pending signal delivery before manipulating signal stuff. (sigprocmask): Ditto. (kill_worker): Ditto. (abort): Ditto. (sigaction): Ditto. * syscalls.cc (readv): Force pending signal delivery before I/O. (writev): Ditto. (open): Ditto. * net.cc: Ditto, throughout. * sigproc.cc (sig_dispatch_pending): Deliver any pending signals prior to returning. * tty.cc (tty::make_pipes): Increase pipe buffer size.
This commit is contained in:
@@ -384,6 +384,7 @@ readv (int fd, const struct iovec *const iov, const int iovcnt)
|
||||
|
||||
while (1)
|
||||
{
|
||||
sig_dispatch_pending (0);
|
||||
sigframe thisframe (mainthread);
|
||||
|
||||
cygheap_fdget cfd (fd);
|
||||
@@ -455,6 +456,7 @@ extern "C" ssize_t
|
||||
writev (const int fd, const struct iovec *const iov, const int iovcnt)
|
||||
{
|
||||
int res = -1;
|
||||
sig_dispatch_pending (0);
|
||||
const ssize_t tot = check_iovec_for_write (iov, iovcnt);
|
||||
|
||||
sigframe thisframe (mainthread);
|
||||
@@ -510,6 +512,7 @@ open (const char *unix_path, int flags, ...)
|
||||
int res = -1;
|
||||
va_list ap;
|
||||
mode_t mode = 0;
|
||||
sig_dispatch_pending (0);
|
||||
sigframe thisframe (mainthread);
|
||||
|
||||
syscall_printf ("open (%s, %p)", unix_path, flags);
|
||||
|
Reference in New Issue
Block a user