Re: How should a driver shutdown a taskqueue on detach?

From: Ryan Stone <rysto32_at_gmail.com>
Date: Tue, 7 Jul 2015 19:52:56 -0400
On Thu, Jul 2, 2015 at 3:08 AM, Konstantin Belousov <kostikbel_at_gmail.com>
wrote:

> 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).
>

That's fair, but I feel that a new enqueue function would be rather
intrusive for existing drivers.  Maybe we should attach this from a
different angle.  How about a taskqueue_quiesce() function, which must be
called on a blocked taskqueue (by taskqueue_block() ).  taskqueue_quiesce()
would block until the taskqueue's thread has stopped running.  Then I can
do:

taskqueue_block()
taskqueue_quiesce()
taskqueue_cancel()
//...
taskqueue_free()
Received on Tue Jul 07 2015 - 21:52:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:58 UTC