sd-event: refuse running default event loops in any other thread than the one they are default for
This commit is contained in:
parent
8089643328
commit
e544601536
1
TODO
1
TODO
|
@ -701,7 +701,6 @@ Features:
|
|||
- allow multiple signal handlers per signal?
|
||||
- document chaining of signal handler for SIGCHLD and child handlers
|
||||
- define more intervals where we will shift wakeup intervals around in, 1h, 6h, 24h, ...
|
||||
- generate a failure of a default event loop is executed out-of-thread
|
||||
|
||||
* investigate endianness issues of UUID vs. GUID
|
||||
|
||||
|
|
|
@ -3422,6 +3422,11 @@ _public_ int sd_event_prepare(sd_event *e) {
|
|||
assert_return(e->state != SD_EVENT_FINISHED, -ESTALE);
|
||||
assert_return(e->state == SD_EVENT_INITIAL, -EBUSY);
|
||||
|
||||
/* Let's check that if we are a default event loop we are executed in the correct thread. We only do
|
||||
* this check here once, since gettid() is typically not cached, and thus want to minimize
|
||||
* syscalls */
|
||||
assert_return(!e->default_event_ptr || e->tid == gettid(), -EREMOTEIO);
|
||||
|
||||
if (e->exit_requested)
|
||||
goto pending;
|
||||
|
||||
|
|
Loading…
Reference in New Issue