1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 03:30:27 +02:00

Changes from arch/CVS synchronization

This commit is contained in:
Ludovic Courtès 2007-10-27 15:15:23 +00:00
parent a49ebd8917
commit ee834df41f
2 changed files with 10 additions and 11 deletions

View file

@ -1,3 +1,9 @@
2007-10-27 Ludovic Courtès <ludo@gnu.org>
* fports.c (scm_i_evict_port): Expect a port, rather than a pair
containing the port. Fixes a bug in the new port table (2007-08-26).
(scm_evict_ports): Use `scm_c_port_for_each ()'.
2007-10-21 Neil Jerram <neil@ossau.uklinux.net> 2007-10-21 Neil Jerram <neil@ossau.uklinux.net>
* eval.c (unmemoize_delay): Extend the environment before * eval.c (unmemoize_delay): Extend the environment before

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. /* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -221,11 +221,10 @@ SCM_DEFINE (scm_setvbuf, "setvbuf", 2, 1, 0,
/* Move ports with the specified file descriptor to new descriptors, /* Move ports with the specified file descriptor to new descriptors,
* resetting the revealed count to 0. * resetting the revealed count to 0.
*/ */
static SCM static void
scm_i_evict_port (SCM handle, void *closure) scm_i_evict_port (void *closure, SCM port)
{ {
int fd = * (int*) closure; int fd = * (int*) closure;
SCM port = SCM_CAR (handle);
if (SCM_FPORTP (port)) if (SCM_FPORTP (port))
{ {
@ -239,18 +238,12 @@ scm_i_evict_port (SCM handle, void *closure)
scm_set_port_revealed_x (port, scm_from_int (0)); scm_set_port_revealed_x (port, scm_from_int (0));
} }
} }
return handle;
} }
void void
scm_evict_ports (int fd) scm_evict_ports (int fd)
{ {
scm_i_scm_pthread_mutex_lock (&scm_i_port_table_mutex); scm_c_port_for_each (scm_i_evict_port, (void *) &fd);
scm_internal_hash_for_each_handle (&scm_i_evict_port,
(void*) &fd,
scm_i_port_weak_hash);
scm_i_pthread_mutex_unlock (&scm_i_port_table_mutex);
} }