Searched hist:fc09164658bf68154962af2c722862ed8ec97bb3 (Results 1 – 3 of 3) sorted by relevance
/freebsd/share/man/man9/ |
H A D | EVENTHANDLER.9 | diff fc09164658bf68154962af2c722862ed8ec97bb3 Sun Oct 08 19:21:16 CEST 2017 Ian Lepore <ian@FreeBSD.org> 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
|
/freebsd/sys/kern/ |
H A D | subr_eventhandler.c | diff fc09164658bf68154962af2c722862ed8ec97bb3 Sun Oct 08 19:21:16 CEST 2017 Ian Lepore <ian@FreeBSD.org> 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
|
/freebsd/sys/sys/ |
H A D | eventhandler.h | diff fc09164658bf68154962af2c722862ed8ec97bb3 Sun Oct 08 19:21:16 CEST 2017 Ian Lepore <ian@FreeBSD.org> 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
|