summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1994-10-06 23:02:25 +0000
committerRoland McGrath <roland@gnu.org>1994-10-06 23:02:25 +0000
commit76139ba934a146b18cac3ce1bfe0634b3b179e2f (patch)
tree615a3af2891c2e4293f5eae1f366ce2a824ebbb8 /hurd
parentd5d34c0b8ebfa19ea3fd4112f416ffb8c4551ee7 (diff)
(_hurd_socket_server): Take new arg DEAD; explain its use in comment.
Diffstat (limited to 'hurd')
-rw-r--r--hurd/hurd.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/hurd/hurd.h b/hurd/hurd.h
index 742a6799ac..7ba0062338 100644
--- a/hurd/hurd.h
+++ b/hurd/hurd.h
@@ -239,9 +239,18 @@ extern void _hurd_init (int flags, char **argv,
extern void _hurd_proc_init (char **argv);
-/* Return the socket server for sockaddr domain DOMAIN. */
-
-extern socket_t _hurd_socket_server (int domain);
+/* Return the socket server for sockaddr domain DOMAIN. If DEAD is
+ nonzero, remove the old cached port and always do a fresh lookup.
+
+ It is assumed that a socket server will stay alive during a complex socket
+ operation involving several RPCs. But a socket server may die during
+ long idle periods between socket operations. Callers should first pass
+ zero for DEAD; if the first socket RPC tried on the returned port fails
+ with MACH_SEND_INVALID_DEST or MIG_SERVER_DIED (indicating the server
+ went away), the caller should call _hurd_socket_server again with DEAD
+ nonzero and retry the RPC on the new socket server port. */
+
+extern socket_t _hurd_socket_server (int domain, int dead);
/* Send a `sig_post' RPC to process number PID. If PID is zero,
send the message to all processes in the current process's process group.