Skip site navigation (1)Skip section navigation (2)
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>