summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2013-12-12 22:47:27 -0800
committerKaz Kylheku <kaz@kylheku.com>2013-12-12 22:47:27 -0800
commitb3f8bee89e3fa5713ff391e0172b8e1d4b92be25 (patch)
tree14d49b10503cd3e086d00c79df184e51d444fe6b /ChangeLog
parentccf6c78422c227778c5e6103413849803aa7b158 (diff)
downloadtxr-b3f8bee89e3fa5713ff391e0172b8e1d4b92be25.tar.gz
txr-b3f8bee89e3fa5713ff391e0172b8e1d4b92be25.tar.bz2
txr-b3f8bee89e3fa5713ff391e0172b8e1d4b92be25.zip
First cut at signal handling support.
* Makefile (OBJS-y): Include signal.o if have_posix_sigs is "y". * configure (have_posix_sigs): New variable, set by detecting POSIX signal stuff. * dep.mk: Regenerated. * arith.c, debug.c, eval.c, filter.c, hash.c, match.c, parser.y, parser.l, rand.c, regex.c, syslog.c, txr.c, utf8.c: Include new signal.h header, now required by unwind, and the <signal.h> system header. * eval.c (exit_wrap): New function. (eval_init): New functions registered as intrinsics: exit_wrap, set_sig_handler, get_sig_handler, sig_check. * gc.c (release): Unused functions removed. * gc.h (release): Declaration removed. * lib.c (init): Call sig_init. * stream.c (set_putc, se_getc, se_fflush): New static functions. (stdio_put_char_callback, stdio_get_char_callback, stdio_put_byte, stdio_flush, stdio_get_byte): Use new functions to enable signals when blocked on I/O. (tail_strategy): Allow signals across sleep. (pipev_close): Allow signals across waitpid. (se_pclose): New static function. (pipe_close): Use new function to enable signals across pclose. * unwind.c (uw_unwind_to_exit_point): use extended_longjmp instead of longjmp. * unwind.h (struct uw_block, struct uw_catch): jb member changes from jmp_buf to extended_jmp_buf. (uw_block_begin, uw_simple_catch_begin, uw_catch_begin): Use extended_setjmp instead of setjmp. * signal.c: New file. * signal.h: New file.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog47
1 files changed, 47 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e3407b5f..38e4a8c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,52 @@
2013-12-12 Kaz Kylheku <kaz@kylheku.com>
+ First cut at signal handling support.
+
+ * Makefile (OBJS-y): Include signal.o if have_posix_sigs is "y".
+
+ * configure (have_posix_sigs): New variable, set by detecting POSIX
+ signal stuff.
+
+ * dep.mk: Regenerated.
+
+ * arith.c, debug.c, eval.c, filter.c, hash.c, match.c, parser.y,
+ parser.l, rand.c, regex.c, syslog.c, txr.c, utf8.c: Include new
+ signal.h header, now required by unwind, and the <signal.h> system
+ header.
+
+ * eval.c (exit_wrap): New function.
+ (eval_init): New functions registered as intrinsics: exit_wrap,
+ set_sig_handler, get_sig_handler, sig_check.
+
+ * gc.c (release): Unused functions removed.
+
+ * gc.h (release): Declaration removed.
+
+ * lib.c (init): Call sig_init.
+
+ * stream.c (set_putc, se_getc, se_fflush): New static functions.
+ (stdio_put_char_callback, stdio_get_char_callback, stdio_put_byte,
+ stdio_flush, stdio_get_byte): Use new functions to enable
+ signals when blocked on I/O.
+ (tail_strategy): Allow signals across sleep.
+ (pipev_close): Allow signals across waitpid.
+ (se_pclose): New static function.
+ (pipe_close): Use new function to enable signals across pclose.
+
+ * unwind.c (uw_unwind_to_exit_point): use extended_longjmp instead of
+ longjmp.
+
+ * unwind.h (struct uw_block, struct uw_catch): jb member changes from
+ jmp_buf to extended_jmp_buf.
+ (uw_block_begin, uw_simple_catch_begin, uw_catch_begin): Use
+ extended_setjmp instead of setjmp.
+
+ * signal.c: New file.
+
+ * signal.h: New file.
+
+2013-12-12 Kaz Kylheku <kaz@kylheku.com>
+
* configure (config_flags): Variable removed. This was more trouble than it
was worth, and only solved problems caused by not checking that the test
program was made all the way to an executable.