On Nov 11, 2014, at 00:56, David Chisnall <thera...@freebsd.org> wrote:
> On 11 Nov 2014, at 03:35, Allan Jude <allanj...@freebsd.org> wrote:
>> jkh@ mentioned this specifically when he gave his talk at EuroBSDCon and
>> MeetBSD, about how Apple solved this in LaunchD, because apparently
>> originally libc DID check /etc/localtime constantly.
> Darwin also has the notify(3) interface, which allows one-bit messages to be 
> transmitted either from the kernel to userspace or from userspace to 
> userspace very cheaply.  This is ideal for this sort of 'something you've 
> cached is change, go and do something expensive to fix it' use (time zone has 
> changed, network connectivity has changed, power state has changed).  You can 
> assign notifications to either file descriptors (that can be monitored with 
> kqueue), to signals, or to flags in memory for things where polling is 
> cheaper (as in this case - the libc functions could just check whether a 
> specific flag is set in memory when accessing the time zone info and load a 
> newer one if changed).

Except that's not how it works for network events: kernel control sockets are 
used to communicate between the kernel and userland about the state of the 
network.  Kernel control sockets carry kernel event messages.

Rui Paulo

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to