There's a kqueue notification mechanism just for this very thing.

(What would be nice is having kqueue know about conditionals, so we
can sleep on a cond as well as a kqueue fd+queue, but I can't have
everything I want..)


On 28 July 2015 at 05:19, Luigi Rizzo <> wrote:
> Hi,
> for some work we are doing on bhyve, we need some lightweight mechanism that
> a kernel thread can use to wake up another user thread possibly
> waiting for some event.
> If the recipient of the event were a kernel thread it would simply
> do a tsleep(chan...) and the sender would do a wakeup() or wakeup_one().
> Do we have an equally simple option for a recipient that is a
> userspace thread using something that is already in the kernel ?
> Do we have some blocking syscall that ends up doing a tsleep in
> a predictable way ?
> I suppose I could create a kqueue() descriptor and instruct the kernel
> thread side to post an event instead of doing the wakeup, but
> this seems a bit more expensive on both endpoints.
> cheers
> luigi
> _______________________________________________
> mailing list
> To unsubscribe, send any mail to ""
_______________________________________________ mailing list
To unsubscribe, send any mail to ""

Reply via email to