cvs commit: src/sys/dev/fdc fdc.c fdcvar.h

M. Warner Losh imp at bsdimp.com
Thu Sep 23 18:10:40 PDT 2004


In message: <41535BD3.1020609 at root.org>
            Nate Lawson <nate at 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


More information about the cvs-src mailing list