This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=6625ef152f7600405b739a4fdae6b0ef07d0de54 The branch, wip-threads-and-fork has been created at 6625ef152f7600405b739a4fdae6b0ef07d0de54 (commit) - Log ----------------------------------------------------------------- commit 6625ef152f7600405b739a4fdae6b0ef07d0de54 Author: Andy Wingo <[email protected]> Date: Wed Feb 8 20:11:57 2012 +0100 web server: use CLOEXEC * module/web/server/http.scm (http-read): Pass SOCK_CLOEXEC to `accept'. commit 8d07adcbc17dcda5ad7b0fc5b1c988d1b3c50062 Author: Andy Wingo <[email protected]> Date: Wed Feb 8 20:11:28 2012 +0100 optional flags arg to scm_accept, which uses accept4 * libguile/socket.c (scm_accept): Take another argument, "flags". This dispatches to accept4, if it's available, to possibly set the CLOEXEC flag on the accepted port. commit a66a076b8b7d3c2521e33fc3571723765a2dac9e Author: Andy Wingo <[email protected]> Date: Tue Feb 14 14:33:19 2012 +0100 fix a race (one of many) relating to close-port * libguile/ports.c (scm_close_port): Remove the port from the weak set before nulling out the stream. Fixes a case in which port-for-each traversers can see a NULL stream. commit 3f3ea0e25b0fe42602eb810a0ca4285b1ba79a60 Author: Andy Wingo <[email protected]> Date: Wed Feb 8 20:09:36 2012 +0100 primitive-move->fdes preserves CLOEXEC flag * libguile/ioext.c (scm_primitive_move_to_fdes): Use dup3 to preserve the CLOEXEC flag, if appropriate. commit 659a5d75ce57c46d174043bc9c12d903bfc679ca Author: Andy Wingo <[email protected]> Date: Wed Feb 8 20:08:15 2012 +0100 add file-port-close-on-exec?; popen takes advantage of it. * libguile/fports.c (scm_i_evict_port): Use F_DUPFD_CLOEXEC if the port is CLOEXEC. (scm_file_port_close_on_exec_p): New interface. (scm_i_fdes_to_port): Use F_GETFD on the fd to see if it is cloexec, and if it is, mark it in the scm_t_fport. That way popen.scm won't have to do anything about it. * module/ice-9/popen.scm (ensure-fdes): No need for false-if-exception here. (open-process): Rework the port-for-each call to not bother with file descriptors that are CLOEXEC. commit 31a888065e247577f62c9f0b7ba90fafcbe314bf Author: Andy Wingo <[email protected]> Date: Wed Feb 8 20:05:04 2012 +0100 fcntl: support F_DUPFD_CLOEXEC and O_CLOEXEC. * libguile/filesys.c (scm_fcntl): Document F_DUPFD_CLOEXEC. (scm_init_filesys): Define O_CLOEXEC and F_DUPFD_CLOEXEC. commit 6b56cca8bc6e42f1a4dcda04692d236084537e73 Author: Andy Wingo <[email protected]> Date: Tue Feb 14 14:30:48 2012 +0100 wrap iconv_open / iconv_close with a lock to help in thread/fork issues * libguile/bytevectors.c (STRING_TO_UTF, scm_string_to_utf8) (UTF_TO_STRING): * libguile/ports.c (open_iconv_descriptors, close_iconv_descriptors): * libguile/strings.c (scm_from_stringn, scm_to_stringn): Wrap operations that acquire and destroy iconv contexts with a mutex. While iconv is threadsafe, internally it uses a lock, and we need to make sure when we fork() that no one has that lock -- so we surround it with another one. Gross. commit 528ac41e44f029240dc5ab5c1582e63ebb8ccf59 Author: Andy Wingo <[email protected]> Date: Wed Feb 8 19:57:41 2012 +0100 use scm_c_atfork_lock_static_mutex for guile's static mutexen * libguile/async.c (scm_init_async): * libguile/deprecation.c (scm_init_deprecation): * libguile/fluids.c (scm_init_fluids): * libguile/gc.c (scm_init_gc): * libguile/instructions.c (scm_bootstrap_instructions): * libguile/ports.c (scm_init_ports): * libguile/posix.c (scm_init_posix): * libguile/strings.c (string_get_handle): * libguile/threads.c (scm_init_threads): Use the atfork mutex mechanism to lock a number of static mutexen. commit 0f3dde2349bb946e678235f35412a906e5ecc40d Author: Andy Wingo <[email protected]> Date: Wed Feb 8 19:52:42 2012 +0100 add scm_c_atfork_lock_static_mutex * libguile/posix.h: * libguile/posix.c (scm_c_atfork_lock_static_mutex): New interface. commit a0924c8a5722fa7d6738b5aa126355b899921715 Author: Andy Wingo <[email protected]> Date: Wed Feb 8 15:47:22 2012 +0100 add atfork interface * libguile/posix.h: * libguile/posix.c (scm_c_atfork): New interface. (scm_fork): Wrap fork calls in atfork pre/post invocations, and finally a GC_call_with_alloc_lock. It's an attempt to grab the interesting mutexes in Guile. * libguile/weak-set.c (make_weak_set): * libguile/weak-table.c (make_weak_table): Use atfork mechanism to lock and unlock weak sets and weak tables during a fork(), in such a way that does not prevent those tables from being gc'd. ----------------------------------------------------------------------- hooks/post-receive -- GNU Guile
