launch_daemon: Trigger sticky-already-triggered external events immediately.

If the external event is sticky and already triggered, then we want
to trigger any newly-added events immediately. This fixes "boot hangs
on rocket" regressions following 4f126f690c,
which seems to have exacerbated this already-existing race condition.

Fixes #17289.

Change-Id: Ie405826cc50255895c8831c34b8bdf902e584eb5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4510
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Augustin Cavalier
2021-09-29 15:44:35 +00:00
committed by waddlesplash
parent b19b3d9b39
commit ce308ddc6b
+3
View File
@@ -317,6 +317,9 @@ ExternalEventSource::ResetSticky()
status_t
ExternalEventSource::AddDestination(Event* event)
{
if (fStickyTriggered)
Events::TriggerExternalEvent(event);
if (fDestinations.AddItem(event))
return B_OK;