* 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:
Christopher Faylor
2002-11-22 20:51:13 +00:00
parent 2955fd7669
commit a0d3c309e4
7 changed files with 66 additions and 2 deletions

View File

@@ -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);