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"