projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
check return value of write (quiets gcc)
[ghc-hetmet.git]
/
rts
/
posix
/
Signals.c
diff --git
a/rts/posix/Signals.c
b/rts/posix/Signals.c
index
c016b9b
..
c1ffb5d
100644
(file)
--- a/
rts/posix/Signals.c
+++ b/
rts/posix/Signals.c
@@
-102,20
+102,24
@@
setIOManagerPipe (int fd)
void
ioManagerWakeup (void)
{
void
ioManagerWakeup (void)
{
+ int r;
// Wake up the IO Manager thread by sending a byte down its pipe
if (io_manager_pipe >= 0) {
StgWord8 byte = (StgWord8)IO_MANAGER_WAKEUP;
// Wake up the IO Manager thread by sending a byte down its pipe
if (io_manager_pipe >= 0) {
StgWord8 byte = (StgWord8)IO_MANAGER_WAKEUP;
- write(io_manager_pipe, &byte, 1);
+ r = write(io_manager_pipe, &byte, 1);
+ if (r == -1) { sysErrorBelch("ioManagerWakeup: write"); }
}
}
void
ioManagerDie (void)
{
}
}
void
ioManagerDie (void)
{
+ int r;
// Ask the IO Manager thread to exit
if (io_manager_pipe >= 0) {
StgWord8 byte = (StgWord8)IO_MANAGER_DIE;
// Ask the IO Manager thread to exit
if (io_manager_pipe >= 0) {
StgWord8 byte = (StgWord8)IO_MANAGER_DIE;
- write(io_manager_pipe, &byte, 1);
+ r = write(io_manager_pipe, &byte, 1);
+ if (r == -1) { sysErrorBelch("ioManagerDie: write"); }
close(io_manager_pipe);
io_manager_pipe = -1;
}
close(io_manager_pipe);
io_manager_pipe = -1;
}
@@
-155,8
+159,6
@@
generic_handler(int sig USED_IF_THREADS,
siginfo_t *info,
void *p STG_UNUSED)
{
siginfo_t *info,
void *p STG_UNUSED)
{
- sigset_t signals;
-
#if defined(THREADED_RTS)
if (io_manager_pipe != -1)
#if defined(THREADED_RTS)
if (io_manager_pipe != -1)
@@
-216,14
+218,9
@@
generic_handler(int sig USED_IF_THREADS,
stg_exit(EXIT_FAILURE);
}
stg_exit(EXIT_FAILURE);
}
- MainCapability.context_switch = 1;
+ contextSwitchCapability(&MainCapability);
#endif /* THREADED_RTS */
#endif /* THREADED_RTS */
-
- // re-establish the signal handler, and carry on
- sigemptyset(&signals);
- sigaddset(&signals, sig);
- sigprocmask(SIG_UNBLOCK, &signals, NULL);
}
/* -----------------------------------------------------------------------------
}
/* -----------------------------------------------------------------------------