on master help sign in
Merge pull request #2767 from mrmonday/no-sigpipe

Ignore SIGPIPE on the unicies.

commit1b1705af74b49b75647cc56b7f43a2420db8fd2c authorNiklas Larsson <metaniklas@gmail.com> dateFri 30 Oct 2015, 19:11 (11 years ago) parent7b30b6db046ab1
3 files changed+13
rts/idris_main.c+1 rts/idris_rts.c+7 rts/idris_rts.h+5
rts/idris_main.c+1
@@ -21,6 +21,7 @@ int main(int argc, char* argv[]) {
2121 init_gmpalloc();
2222
2323 init_nullaries();
24+ init_signals();
2425
2526 _idris__123_runMain0_125_(vm, NULL);
2627
rts/idris_rts.c+7
@@ -72,6 +72,7 @@ VM* idris_vm() {
7272 init_threaddata(vm);
7373 init_gmpalloc();
7474 init_nullaries();
75+ init_signals();
7576
7677 return vm;
7778}
@@ -92,6 +93,12 @@ void init_threaddata(VM *vm) {
9293#endif
9394}
9495
96+void init_signals() {
97+#if (__linux__ || __APPLE__ || __FreeBSD__)
98+ signal(SIGPIPE, SIG_IGN);
99+#endif
100+}
101+
95102Stats terminate(VM* vm) {
96103 Stats stats = vm->stats;
97104 STATS_ENTER_EXIT(stats)
rts/idris_rts.h+5
@@ -9,6 +9,9 @@
99#include <pthread.h>
1010#endif
1111#include <stdint.h>
12+#if (__linux__ || __APPLE__ || __FreeBSD__)
13+#include <signal.h>
14+#endif
1215
1316#include "idris_heap.h"
1417#include "idris_stats.h"
@@ -256,6 +259,8 @@ extern VAL* nullary_cons;
256259void init_nullaries();
257260void free_nullaries();
258261
262+void init_signals();
263+
259264void* vmThread(VM* callvm, func f, VAL arg);
260265
261266// Copy a structure to another vm's heap