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 <rizzo_at_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_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"Received on Tue Jul 28 2015 - 15:23:02 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:58 UTC