[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-22-g6998556
Date: Sat, 11 Feb 2012 17:19:55 +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".

The branch, wip-threads-and-fork has been created
        at  6998556ba5a8b0c531fffb29d70a244051fe4d96 (commit)

- Log -----------------------------------------------------------------
commit 6998556ba5a8b0c531fffb29d70a244051fe4d96
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

commit a101bef0ca3a9eda3b2412af7bdf0aa269632801
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 437ed099961fb11dcc0f7bcaf02aef478103428d
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 218873fd972137a91501bab17d3166446a062f5b
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 eaa6399fdb04bab6316ed95163f89011b223f62f
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
      (open-process): Rework the port-for-each call to not bother with file
      descriptors that are CLOEXEC.

commit 590e9ec592fd245b8543ea23645b83ecadecfea8
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 cec62161a5a1c7d4ca4d9ede48d595638f437b65
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)
    * 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 b2818a21e3fd94636b6437db33d94dc15417c2b1
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 03404903398c1cc9f0078d8fd08768dd159a357b
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 fa5f777d06fe94b9a08bca6ea40d6bc6534eb641
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.

commit a41bed83ab2d2f0bf93c06115c695280d04d13e6
Merge: bbabae9 c2c3bdd
Author: Andy Wingo <address@hidden>
Date:   Sat Feb 11 18:14:48 2012 +0100

    Merge remote-tracking branch 'origin/stable-2.0'


GNU Guile

reply via email to

[Prev in Thread] Current Thread [Next in Thread]