Ian Lepore fc09164658 Restore the ability to deregister an eventhandler from within the callback.
When the EVENTHANDLER(9) subsystem was created, it was a documented feature
that an eventhandler callback function could safely deregister itself. In
r200652 that feature was inadvertantly broken by adding drain-wait logic to
eventhandler_deregister(), so that it would be safe to unload a module upon
return from deregistering its event handlers.

There are now 145 callers of EVENTHANDLER_DEREGISTER(), and it's likely many
of them are depending on the drain-wait logic that has been in place for 8
years. So instead of creating a separate eventhandler_drain() and adding it
to some or all of those 145 call sites, this creates a separate
eventhandler_drain_nowait() function for the specific purpose of
deregistering a callback from within the running callback.

Differential Revision:	https://reviews.freebsd.org/D12561
2017-10-08 17:21:16 +00:00
..
2017-03-23 05:37:04 +00:00
2015-08-12 11:56:19 +00:00
2017-07-07 05:43:44 +00:00
2017-03-23 05:41:56 +00:00
2016-05-17 12:52:31 +00:00
2013-03-04 19:10:39 +00:00
2017-03-23 05:44:18 +00:00
2013-04-20 12:36:53 +00:00
2016-03-16 05:05:54 +00:00
2014-11-23 21:00:00 +00:00
2016-02-29 17:26:41 +00:00
2016-06-08 10:38:00 +00:00
2015-06-13 19:20:56 +00:00
2016-01-08 13:33:22 +00:00
2017-04-27 16:05:12 +00:00
2014-07-23 18:54:18 +00:00
2015-08-12 11:56:19 +00:00
2017-01-15 17:54:01 +00:00
2014-05-04 12:32:37 +00:00
2015-01-27 09:48:02 +00:00
2014-07-18 06:56:24 +00:00
2016-09-03 20:38:13 +00:00
2017-01-26 16:36:12 +00:00
2015-05-19 15:43:20 +00:00
2015-07-16 15:43:55 +00:00
2017-05-16 23:31:52 +00:00
2017-03-14 22:02:02 +00:00
2014-11-23 21:00:00 +00:00
2014-07-17 23:23:01 +00:00
2017-03-11 22:22:51 +00:00
2013-10-07 20:29:31 +00:00
2016-02-24 20:32:24 +00:00
2017-04-26 17:55:43 +00:00