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 http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"