Date: Thu, 23 Sep 2004 19:11:14 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: nate@root.org Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/fdc fdc.c fdcvar.h Message-ID: <20040923.191114.00483229.imp@bsdimp.com> In-Reply-To: <41535BD3.1020609@root.org> References: <41535A06.7090809@root.org> <200409231923.40285.jhb@FreeBSD.org> <41535BD3.1020609@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <41535BD3.1020609@root.org> Nate Lawson <nate@root.org> writes: : John Baldwin wrote: : > On Thursday 23 September 2004 07:19 pm, Nate Lawson wrote: : >>Or simpler: : >> : >>foo_kill(): : >> error = kthread_suspend(p, kproc_shutdown_wait * hz); : >> if (error == EWOULDBLOCK) : >> printf("timed out\n"); : >> : >>foo_thread(): : >> for (;;) { : >> mtx_unlock(&bdlock); : >> kthread_suspend_check(bufdaemonproc); : >> ... : >> mtx_lock(&bdlock); : >> if (numdirtybuffers <= lodirtybuffers) : >> msleep(&bd_request, &bdlock, PVM, "psleep", hz); : > : > : > That doesn't actually cause the thread to exit, it just goes to sleep. If fdc : > wants to support detaching and kldunload it needs the thread to actually go : > away, not just go to sleep. : : If a thread is suspended and the module is unloaded, what would be the : failure case? Why have a suspended thread around when you could have it dead? It is a resource leak. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040923.191114.00483229.imp>