diff options
Diffstat (limited to 'libdiskfs/init-first.c')
-rw-r--r-- | libdiskfs/init-first.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/libdiskfs/init-first.c b/libdiskfs/init-first.c index f1df3dd1..d91345be 100644 --- a/libdiskfs/init-first.c +++ b/libdiskfs/init-first.c @@ -1,5 +1,5 @@ /* - Copyright (C) 1994, 1995 Free Software Foundation + Copyright (C) 1994,95,97,2001 Free Software Foundation This file is part of the GNU Hurd. @@ -8,7 +8,7 @@ it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. -The GNU Hurd is distributed in the hope that it will be useful, +The GNU Hurd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -20,33 +20,37 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Written by Michael I. Bushnell. */ #include "priv.h" +#include <stdlib.h> +#include <hurd/ports.h> static int thread_timeout = 1000 * 60 * 2; /* two minutes */ static int server_timeout = 1000 * 60 * 10; /* ten minutes */ static any_t -master_thread_function (any_t foo __attribute__ ((unused))) +master_thread_function (any_t demuxer) { error_t err; - do + do { ports_manage_port_operations_multithread (diskfs_port_bucket, - diskfs_demuxer, + (ports_demuxer_type) demuxer, thread_timeout, server_timeout, - 1, MACH_PORT_NULL); + 0); err = diskfs_shutdown (0); } while (err); - + exit (0); + /* NOTREACHED */ + return (any_t) 0; } void -diskfs_spawn_first_thread (void) +diskfs_spawn_first_thread (ports_demuxer_type demuxer) { cthread_detach (cthread_fork ((cthread_fn_t) master_thread_function, - (any_t) 0)); + (any_t) demuxer)); } |