diff options
author | Andy Wingo <wingo@pobox.com> | 2016-08-30 23:35:10 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-08-30 23:35:10 +0200 |
commit | 2fa2e50a0fdb49e70d6882e06d1a2dcc2ae10a69 (patch) | |
tree | 73aa2e3a049edb5109ec521eccde6d064a2fa7a8 /libguile/ioext.c | |
parent | 4256e0655f6b2aae53c3345196288c92423ff277 (diff) | |
download | guile-2fa2e50a0fdb49e70d6882e06d1a2dcc2ae10a69.tar.gz |
Add file descriptor finalizers
* doc/ref/posix.texi (Ports and File Descriptors): Document new
interfaces.
* libguile/filesys.c (scm_close, scm_close_fdes)
* libguile/fports.c (fport_close):
* libguile/ioext.c (scm_primitive_move_to_fdes): Call
scm_run_fdes_finalizers.
* module/ice-9/fdes-finalizers.scm:
* test-suite/tests/fdes-finalizers.test:
* libguile/fdes-finalizers.h:
* libguile/fdes-finalizers.c: New files.
* module/Makefile.am:
* test-suite/Makefile.am:
* libguile/Makefile.am:
* libguile.h:
* libguile/init.c: Wire up new files.
Diffstat (limited to 'libguile/ioext.c')
-rw-r--r-- | libguile/ioext.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/ioext.c b/libguile/ioext.c index 58a6219f3..43c915a09 100644 --- a/libguile/ioext.c +++ b/libguile/ioext.c @@ -29,6 +29,7 @@ #include "libguile/_scm.h" #include "libguile/dynwind.h" +#include "libguile/fdes-finalizers.h" #include "libguile/feature.h" #include "libguile/fports.h" #include "libguile/hashtab.h" @@ -266,6 +267,7 @@ SCM_DEFINE (scm_primitive_move_to_fdes, "primitive-move->fdes", 2, 0, 0, if (rv == -1) SCM_SYSERROR; stream->fdes = new_fd; + scm_run_fdes_finalizers (old_fd); SCM_SYSCALL (close (old_fd)); return SCM_BOOL_T; } |