mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-10 23:46:20 +01:00
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
|
||
|---|---|---|
| .. | ||
| boost-debug | ||
| msvc | ||
| MSVCpbd | ||
| pbd | ||
| test | ||
| base_ui.cc | ||
| basename.cc | ||
| boost_debug.cc | ||
| cartesian.cc | ||
| ChangeLog | ||
| cocoa_open_uri.mm | ||
| command.cc | ||
| configuration_variable.cc | ||
| controllable.cc | ||
| convert.cc | ||
| COPYING | ||
| cpus.cc | ||
| crossthread.cc | ||
| crossthread.posix.cc | ||
| crossthread.win.cc | ||
| debug.cc | ||
| debug_rt_alloc.c | ||
| demangle.cc | ||
| enums.cc | ||
| enumwriter.cc | ||
| epa.cc | ||
| error.cc | ||
| event_loop.cc | ||
| ffs.cc | ||
| file_archive.cc | ||
| file_utils.cc | ||
| fpu.cc | ||
| gettext.h | ||
| id.cc | ||
| libpbd.pc.in | ||
| libpbd.spec.in | ||
| locale_guard.cc | ||
| localtime_r.cc | ||
| malign.cc | ||
| md5.cc | ||
| microseconds.cc | ||
| mountpoint.cc | ||
| openuri.cc | ||
| pathexpand.cc | ||
| pbd.cc | ||
| pcg_rand.cc | ||
| pool.cc | ||
| property_list.cc | ||
| pthread_utils.cc | ||
| reallocpool.cc | ||
| receiver.cc | ||
| resource.cc | ||
| run-tests.sh | ||
| search_path.cc | ||
| semutils.cc | ||
| shortpath.cc | ||
| signals.cc | ||
| spinlock.cc | ||
| stacktrace.cc | ||
| stateful.cc | ||
| stateful_diff_command.cc | ||
| string_convert.cc | ||
| strreplace.cc | ||
| strsplit.cc | ||
| system_exec.cc | ||
| textreceiver.cc | ||
| timer.cc | ||
| timing.cc | ||
| tlsf.cc | ||
| transmitter.cc | ||
| undo.cc | ||
| uuid.cc | ||
| whitespace.cc | ||
| windows_mmcss.cc | ||
| windows_special_dirs.cc | ||
| windows_timer_utils.cc | ||
| wscript | ||
| xml++.cc | ||