Robin Gareus
84c51a1411
Fix BaseUI x-thread signal vs thread-start race
...
Control surfaces c'tor usually subscribe to signals e.g.
PortConnectedOrDisconnected. This happens after the parent BaseUI
is created, but before set_active() -> BaseUI::run() is called.
At this point in time there is no run_loop thread.
There are two options to handle AbstractUI::call_slot():
A. Queue the event in the event-loop, using the thread-local
request buffer of the caller. Then hope the BaseUI
thread is started, and calls ::handle_ui_requests() before
the memory pool runs out of space.
B. Handle the event in the calling thread. -- This may not be
rt-safe and may call functions with locks held by the caller.
It will however not accumulate events.
This takes approach (B). If _run_loop_thread is NULL, directly
handle the signal.
In the past, prior to 50abcc74b5 , approach (A) was taken.
NULL never matched Glib::Threads::Thread::self().
This also reverts a prior attempt (e417495505 ) to address this issue.
2022-03-02 21:19:12 +01:00
..
2021-05-05 17:57:16 +02:00
2019-08-03 15:53:17 +02:00
2021-04-16 17:43:31 +02:00
2022-03-02 21:19:12 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2020-07-21 18:37:32 -05:00
2021-02-09 02:11:04 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-09-30 04:45:59 +02:00
2019-08-03 15:53:17 +02:00
2021-07-14 16:04:07 +02:00
2019-08-03 15:53:17 +02:00
2020-08-05 22:35:35 +02:00
2021-08-13 12:51:29 -06:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2020-10-13 21:27:16 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2020-04-05 16:34:48 +02:00
2019-09-30 06:30:11 +02:00
2019-08-03 15:53:17 +02:00
2021-01-01 21:05:16 +01:00
2019-08-03 15:53:17 +02:00
2021-08-16 04:26:55 +02:00
2020-03-13 01:21:51 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2021-08-13 12:51:34 -06:00
2021-09-15 17:52:53 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2015-10-05 16:17:49 +02:00
2021-08-13 12:51:30 -06:00
2021-06-28 14:47:48 -06:00
2019-08-03 15:53:17 +02:00
2021-06-07 23:40:29 +02:00
2021-05-11 14:06:25 +01:00
2021-10-08 04:12:32 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2021-09-04 12:35:44 +01:00
2021-06-14 00:43:08 +02:00
2019-08-03 15:53:17 +02:00
2021-09-25 16:49:51 -06:00
2019-08-03 15:53:17 +02:00
2022-02-09 10:08:01 -07:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2022-03-01 01:33:08 +01:00
2021-08-13 12:51:32 -06:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2021-03-22 15:30:07 +01:00
2021-03-22 15:30:07 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2021-09-25 16:49:51 -06:00
2019-08-03 15:53:17 +02:00
2021-11-21 03:27:50 +01:00
2021-11-21 04:12:24 +01:00
2019-09-26 02:48:17 +02:00
2020-03-09 18:33:11 +01:00
2021-07-12 04:01:07 +02:00
2020-02-28 06:08:26 +01:00
2022-01-10 00:06:20 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2020-10-31 22:30:45 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2021-06-29 17:46:03 -06:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2020-10-13 21:27:16 +02:00
2019-08-03 15:53:17 +02:00
2020-02-25 20:09:47 +01:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2019-08-03 15:53:17 +02:00
2020-12-10 20:21:29 +01:00
2020-03-26 10:40:36 +00:00
2020-10-30 13:15:06 +01:00
2021-06-26 18:25:02 -06:00
2022-01-13 00:09:55 +01:00