Damien Zammit, le lun. 12 sept. 2022 10:40:04 +0000, a ecrit: > +static void * > +netfs_server_func (void *arg) > +{ > + error_t err; > + > + do > + { > + ports_manage_port_operations_multithread (netfs_port_bucket, > + netfs_demuxer, > + 1000 * 60 * 2, /* two minutes > thread */ > + 1000 * 60 * 10,/* ten minutes > server */ > + 0); > + err = netfs_shutdown (0); > + } > + while (err); > + return NULL; > +}
You don't need this function, > @@ -106,7 +251,16 @@ main (int argc, char **argv) > if (err) > error (1, err, "setting permissions"); > > - netfs_server_loop (); /* Never returns. */ > + if (next_task != MACH_PORT_NULL) > + { > + err = pthread_create (&mt, NULL, machdev_trivfs_server_loop, NULL); > + if (err) > + error(1, err, "creating machdev_trivfs_server_loop thread"); > + pthread_detach (mt); > + } > + > + netfs_server_func (NULL); Just call netfs_server_loop like it was. > + /* Never reached */ > return 0; > } It is reached, since netfs_server_func may return :) netfs_server_loop, however, wouldn't indeed. Samuel