Date: Thu, 2 Jul 2015 10:08:28 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Ryan Stone <rysto32@gmail.com> Cc: Jack Vogel <jfvogel@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: How should a driver shutdown a taskqueue on detach? Message-ID: <20150702070828.GH2080@kib.kiev.ua> In-Reply-To: <CAFMmRNyeEp0gccRAspkJNT_tFWZvJWEczNitB8nCyOzSWKZBWA@mail.gmail.com> References: <CAFMmRNxLV0Uk9iT%2BU8rrPvn6aanSfEA6p577McM=_4xypaZr5w@mail.gmail.com> <CAFOYbckF7brPikTPaf%2BZhdm-R9d0WzygY9-eUxnrmi3p%2BBFBoQ@mail.gmail.com> <CAFMmRNzLL-K0kw_cj==kWpiocOcBLzxU2o6ONGaZRiv5tdSHxQ@mail.gmail.com> <20150701213241.GG2080@kib.kiev.ua> <CAFMmRNyeEp0gccRAspkJNT_tFWZvJWEczNitB8nCyOzSWKZBWA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jul 01, 2015 at 06:28:49PM -0400, Ryan Stone wrote: > On Wed, Jul 1, 2015 at 5:32 PM, Konstantin Belousov <kostikbel@gmail.com> > wrote: > > > Do you mean, you want some KPI like > > boolean taskqueue_is_draining(struct taskqueue *p); > > so that e.g. executed task could see if it is executing in the > > shutdown state ? > > > I'd prefer a KPI that stops a taskqueue from accepting new tasks (and drops > attempts to enqueue on the floor). Then I could do something like: > > taskqueue_stop() > disable_interrupts() > taskqueue_drain_all() > taskqueue_free() Having taskqueue_enqueue() which could silently (?) not enqueue the given task is huge and IMO risky change to the KPI. If doing it, I think that there should be a new function to enqueue, which is allowed to fail, unlike taskqueue_enqueue(). BTW, the man page for taskqueue(9) is wrong, taskqueue_enqueue(9) always succeed now and always returns 0 (ignoring the ushort overflow).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150702070828.GH2080>
