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



-adrian


On 28 July 2015 at 05:19, Luigi Rizzo <ri...@iet.unipi.it> 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
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to