Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-11-22 23:51:13 +0300
committerChristopher Faylor <me@cgf.cx>2002-11-22 23:51:13 +0300
commita0d3c309e4e9ea6aab9b058c2e3c68b8deff9c71 (patch)
treea83399354edc1487e7b6663be693d146869d5c0c /winsup/cygwin/syscalls.cc
parent2955fd7669437cb13d2b228b5f1b6c1dda58fa34 (diff)
* 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.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 94c4b0811..edfa3ed2f 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -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);