mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Changes from arch/CVS synchronization
This commit is contained in:
parent
dc061a74fd
commit
29776e85da
4 changed files with 11 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
||||||
2007-10-02 Ludovic Courtès <ludo@gnu.org>
|
2007-10-02 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
* NEWS: Mention `(ice-9 slib)' fix.
|
* NEWS: Mention `(ice-9 slib)' fix and threading fix.
|
||||||
|
|
||||||
2007-09-03 Ludovic Courtès <ludo@gnu.org>
|
2007-09-03 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -46,6 +46,7 @@ Changes in 1.8.3 (since 1.8.2)
|
||||||
** Warnings about duplicate bindings now go to stderr
|
** Warnings about duplicate bindings now go to stderr
|
||||||
** A memory leak in `make-socket-address' was fixed
|
** A memory leak in `make-socket-address' was fixed
|
||||||
** Alignment issues (e.g., on SPARC) in network routines were fixed
|
** Alignment issues (e.g., on SPARC) in network routines were fixed
|
||||||
|
** A threading issue that showed up at least on NetBSD was fixed
|
||||||
** Build problems on Solaris fixed
|
** Build problems on Solaris fixed
|
||||||
|
|
||||||
* Implementation improvements
|
* Implementation improvements
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2007-10-02 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
|
* threads.c (on_thread_exit): Don't call `scm_leave_guile ()'
|
||||||
|
since we're already in non-guile mode. Reported by Greg Toxel
|
||||||
|
for NetBSD.
|
||||||
|
|
||||||
2007-10-01 Ludovic Courtès <ludo@gnu.org>
|
2007-10-01 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
* ports.c (flush_output_port): Expect directly a port instead of
|
* ports.c (flush_output_port): Expect directly a port instead of
|
||||||
|
|
|
@ -495,20 +495,18 @@ do_thread_exit (void *v)
|
||||||
static void
|
static void
|
||||||
on_thread_exit (void *v)
|
on_thread_exit (void *v)
|
||||||
{
|
{
|
||||||
|
/* This handler is executed in non-guile mode. */
|
||||||
scm_i_thread *t = (scm_i_thread *)v, **tp;
|
scm_i_thread *t = (scm_i_thread *)v, **tp;
|
||||||
|
|
||||||
scm_i_pthread_setspecific (scm_i_thread_key, v);
|
scm_i_pthread_setspecific (scm_i_thread_key, v);
|
||||||
|
|
||||||
/* Unblocking the joining threads needs to happen in guile mode
|
/* Unblocking the joining threads needs to happen in guile mode
|
||||||
since the queue is a SCM data structure.
|
since the queue is a SCM data structure. */
|
||||||
*/
|
|
||||||
scm_with_guile (do_thread_exit, v);
|
scm_with_guile (do_thread_exit, v);
|
||||||
|
|
||||||
/* Removing ourself from the list of all threads needs to happen in
|
/* Removing ourself from the list of all threads needs to happen in
|
||||||
non-guile mode since all SCM values on our stack become
|
non-guile mode since all SCM values on our stack become
|
||||||
unprotected once we are no longer in the list.
|
unprotected once we are no longer in the list. */
|
||||||
*/
|
|
||||||
scm_leave_guile ();
|
|
||||||
scm_i_pthread_mutex_lock (&thread_admin_mutex);
|
scm_i_pthread_mutex_lock (&thread_admin_mutex);
|
||||||
for (tp = &all_threads; *tp; tp = &(*tp)->next_thread)
|
for (tp = &all_threads; *tp; tp = &(*tp)->next_thread)
|
||||||
if (*tp == t)
|
if (*tp == t)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue