diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | hurd/new-fd.c | 5 | ||||
-rw-r--r-- | hurd/port2fd.c | 3 |
3 files changed, 24 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 8e2b1827a0..cee4d64461 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +1999-08-22 Mark Kettenis <kettenis@gnu.org> + + * hurd/new-fd.c (_hurd_new_fd): Initialize fcntl flags. + * hurd/port2fd.c (_hurd_port2fd): Reset the fcntl flags when + installing PORT in the descriptor cell. + +1999-08-19 Roland McGrath <roland@baalperazim.frob.com> + + * sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Mark OPTION and + TIMEOUT as outputs of the asm to indicate that the signal thread + might mutate them. + * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Short circuit to plain + mach_msg if only sending or only receiving (i.e., not an RPC). When + making an RPC that might get interrupted, save OPTION and the portion + of the message buffer that gets clobbered by an EINTR reply message, + and properly restore them before attempting to retry the request + message send. + 1999-08-21 Mark Kettenis <kettenis@gnu.org> * stdio-common/vfscanf.c [! USE_IN_LIBIO]: Add necessary diff --git a/hurd/new-fd.c b/hurd/new-fd.c index 37ba82e334..47cbbc086c 100644 --- a/hurd/new-fd.c +++ b/hurd/new-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -33,6 +33,9 @@ _hurd_new_fd (io_t port, io_t ctty) /* Initialize the port cells. */ _hurd_port_init (&d->port, port); _hurd_port_init (&d->ctty, ctty); + + /* And the fcntl flags. */ + d->flags = 0; } return d; diff --git a/hurd/port2fd.c b/hurd/port2fd.c index 063f27b66e..16a5af04a4 100644 --- a/hurd/port2fd.c +++ b/hurd/port2fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -67,6 +67,7 @@ _hurd_port2fd (struct hurd_fd *d, io_t port, int flags) mach_port_t old = _hurd_userlink_clear (&d->port.users) ? d->port.port : MACH_PORT_NULL; d->port.port = port; + d->flags = 0; if (old != MACH_PORT_NULL) __mach_port_deallocate (__mach_task_self (), old); } |