Andreas Kling
643f2884cc
LibCore: Fix signal handler deadlock in EventLoopImplementationUnix
...
handle_signal() called ThreadData::the() which can acquire a write
lock on s_thread_data_lock if the thread hasn't initialized its
ThreadData yet. If the signal interrupts a thread that already holds
a read lock on s_thread_data_lock (e.g. in unregister_notifier()),
this deadlocks — the write lock waits for the read lock, but the
read lock holder is blocked in the signal handler.
Fix by accessing the thread-local s_this_thread_data directly. If
the thread has no ThreadData, there's no wake pipe to write to, so
we just return.
2026-03-07 13:09:50 +01:00
..
2026-02-26 18:31:57 +01:00
2025-12-01 06:34:32 -05:00
2025-12-01 06:34:32 -05:00
2025-06-14 16:03:26 -04:00
2026-02-26 18:31:57 +01:00
2025-02-05 19:27:47 -07:00
2025-04-08 20:00:18 -04:00
2026-02-26 18:31:57 +01:00
2026-02-26 18:31:57 +01:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2025-05-10 21:19:46 -04:00
2026-02-26 18:31:57 +01:00
2026-02-26 18:31:57 +01:00
2026-02-26 18:31:57 +01:00
2025-10-22 13:54:54 +02:00
2026-02-26 18:31:57 +01:00
2025-12-03 13:26:27 +01:00
2026-03-07 13:09:50 +01:00
2026-03-02 17:06:39 -06:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2026-03-07 13:09:50 +01:00
2026-03-02 17:06:39 -06:00
2026-03-02 17:06:39 -06:00
2026-03-02 17:06:39 -06:00
2026-02-21 19:27:35 +01:00
2026-03-02 17:06:39 -06:00
2025-03-15 21:51:22 -06:00
2025-12-01 16:29:48 +01:00
2026-02-26 18:31:57 +01:00
2026-02-26 18:31:57 +01:00
2026-01-16 10:59:50 -07:00
2026-02-23 12:15:23 +01:00
2026-02-26 18:31:57 +01:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2026-01-19 06:53:29 -05:00
2026-02-26 18:31:57 +01:00
2025-06-14 16:03:26 -04:00
2026-02-26 18:31:57 +01:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2025-11-07 11:27:51 +01:00
2026-02-26 18:31:57 +01:00
2026-02-02 10:35:11 +01:00
2026-02-21 19:27:35 +01:00
2026-01-22 17:38:15 +01:00
2025-11-11 11:47:59 +01:00
2025-11-11 11:47:59 +01:00
2026-02-26 18:31:57 +01:00
2025-02-12 18:42:05 -07:00
2026-02-26 18:31:57 +01:00
2025-02-12 18:42:05 -07:00
2026-02-26 18:31:57 +01:00
2025-05-24 06:52:25 -06:00
2026-02-05 07:28:07 -05:00
2026-02-26 18:31:57 +01:00
2025-12-01 16:29:48 +01:00
2026-02-26 18:31:57 +01:00
2025-12-01 06:34:32 -05:00
2026-02-26 18:31:57 +01:00
2026-02-02 10:35:11 +01:00
2025-12-01 06:34:32 -05:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2026-02-21 19:27:35 +01:00
2026-02-26 18:31:57 +01:00
2025-02-06 15:25:14 -07:00
2026-02-26 18:31:57 +01:00
2026-02-02 10:35:11 +01:00
2025-08-11 16:55:25 +02:00
2026-02-26 18:31:57 +01:00
2026-01-19 06:53:29 -05:00
2025-09-24 21:05:54 -05:00
2026-03-02 17:06:39 -06:00
2026-03-02 17:06:39 -06:00
2025-08-11 16:55:25 +02:00
2026-02-26 18:31:57 +01:00
2026-02-26 18:31:57 +01:00
2026-02-21 19:27:35 +01:00
2025-10-05 15:46:15 +02:00
2025-12-01 08:55:33 -05:00
2026-02-26 18:31:57 +01:00
2026-01-19 06:53:29 -05:00
2025-05-15 14:02:48 +02:00
2026-02-26 18:31:57 +01:00