* exceptions.cc (interruptible): Update debugging output.
(setup_handler): Ensure that wait_sig loop wakes up when we punt on sending a signal. * poll.cc (poll): Add signal guard here.
This commit is contained in:
parent
78ace8a7e5
commit
b8c8fa1786
@ -1,3 +1,10 @@
|
|||||||
|
Mon Mar 19 17:43:29 2001 Christopher Faylor <cgf@cygnus.com>
|
||||||
|
|
||||||
|
* exceptions.cc (interruptible): Update debugging output.
|
||||||
|
(setup_handler): Ensure that wait_sig loop wakes up when we punt on
|
||||||
|
sending a signal.
|
||||||
|
* poll.cc (poll): Add signal guard here.
|
||||||
|
|
||||||
2001-03-19 Egor Duda <deo@logos-m.ru>
|
2001-03-19 Egor Duda <deo@logos-m.ru>
|
||||||
|
|
||||||
* tty.h (tty::create_inuse): Add new parameter to allow non-
|
* tty.h (tty::create_inuse): Add new parameter to allow non-
|
||||||
|
@ -640,10 +640,8 @@ interruptible (DWORD pc, int testvalid = 0)
|
|||||||
else
|
else
|
||||||
res = !strncasematch (windows_system_directory, checkdir,
|
res = !strncasematch (windows_system_directory, checkdir,
|
||||||
windows_system_directory_length);
|
windows_system_directory_length);
|
||||||
minimal_printf ("h %p", h);
|
|
||||||
# undef h
|
# undef h
|
||||||
|
sigproc_printf ("h %p, interruptible %d", res);
|
||||||
minimal_printf ("interruptible %d", res);
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -861,6 +859,8 @@ set_pending:
|
|||||||
{
|
{
|
||||||
pending_signals = 1; /* FIXME: Probably need to be more tricky here */
|
pending_signals = 1; /* FIXME: Probably need to be more tricky here */
|
||||||
sig_set_pending (sig);
|
sig_set_pending (sig);
|
||||||
|
sig_dispatch_pending (1);
|
||||||
|
Sleep (0); /* Hopefully, other process will be waking up soon. */
|
||||||
sigproc_printf ("couldn't send signal %d", sig);
|
sigproc_printf ("couldn't send signal %d", sig);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "fhandler.h"
|
#include "fhandler.h"
|
||||||
#include "dtable.h"
|
#include "dtable.h"
|
||||||
#include "cygerrno.h"
|
#include "cygerrno.h"
|
||||||
|
#include "sigproc.h"
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
int
|
int
|
||||||
@ -23,6 +24,7 @@ poll (struct pollfd *fds, unsigned int nfds, int timeout)
|
|||||||
int max_fd = 0;
|
int max_fd = 0;
|
||||||
fd_set *open_fds, *read_fds, *write_fds, *except_fds;
|
fd_set *open_fds, *read_fds, *write_fds, *except_fds;
|
||||||
struct timeval tv = { timeout / 1000, (timeout % 1000) * 1000 };
|
struct timeval tv = { timeout / 1000, (timeout % 1000) * 1000 };
|
||||||
|
sigframe thisframe (mainthread);
|
||||||
|
|
||||||
for (unsigned int i = 0; i < nfds; ++i)
|
for (unsigned int i = 0; i < nfds; ++i)
|
||||||
if (fds[i].fd > max_fd)
|
if (fds[i].fd > max_fd)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user