[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-threads-and-fork, created. v2.1.0-
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, wip-threads-and-fork, created. v2.1.0-12-gf7df274 |
Date: |
Wed, 08 Feb 2012 21:55:11 +0000 |
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=f7df274f925827b1d018930e465d1858f0120236
The branch, wip-threads-and-fork has been created
at f7df274f925827b1d018930e465d1858f0120236 (commit)
- Log -----------------------------------------------------------------
commit f7df274f925827b1d018930e465d1858f0120236
Author: Andy Wingo <address@hidden>
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 e835c141b4274b47dafc52de6e181ca1fca3decd
Author: Andy Wingo <address@hidden>
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 c6f1ec53d0d23e07328f41495fb15a0aec105c13
Author: Andy Wingo <address@hidden>
Date: Wed Feb 8 20:10:26 2012 +0100
fix a race (one of many) relating to close-port
* libguile/ports.c (scm_i_remove_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 12f8e997ec704d1c70e95f40ec4ca331e93cbce8
Author: Andy Wingo <address@hidden>
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 e668cfd1277082b5bf7adfaa00a7e410e6886d75
Author: Andy Wingo <address@hidden>
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 5afac51a16ca6847431e41d8147be37566df55b8
Author: Andy Wingo <address@hidden>
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 49e41693be6831e026aec5051b051106ddda18e9
Author: Andy Wingo <address@hidden>
Date: Wed Feb 8 20:02:52 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 (finalize_port, scm_i_remove_port):
(scm_i_set_port_encoding_x, scm_ungetc_unlocked):
* 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 8374e21bf20ba89573524e54ecc587fa2a7601a8
Author: Andy Wingo <address@hidden>
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 f45231c8fa527c2bf4ec8a51d38bd8f72abaab70
Author: Andy Wingo <address@hidden>
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 c69e567bbf8ed635788ebe71daaa4653d5756645
Author: Andy Wingo <address@hidden>
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-threads-and-fork, created. v2.1.0-12-gf7df274,
Andy Wingo <=