Files
ardour/libs
Robin Gareus 79bf025862 Fix export race condition (and crash)
Previously the freewheel export thread directly called
Session::butler_transport_work(). The butler thread
may concurrently call the same function. This can lead
double free or memory corruption (see below)

Now export thread summons the butler and does nothing
until it completed its work.

```
Export Thread:
3   XMLNode::~XMLNode
4   ARDOUR::AutomationList::snapshot_history
5   ARDOUR::AutomationList::start_write_pass
6   ARDOUR::Automatable::non_realtime_locate
7   ARDOUR::Route::non_realtime_locate
8   ARDOUR::Session::non_realtime_locate
9   ARDOUR::Session::butler_transport_work
10  ARDOUR::Session::process_export_fw

Butler thread:
7   XMLNode::~XMLNode
8   ARDOUR::AutomationList::snapshot_history
9   ARDOUR::AutomationList::start_write_pass
10  ARDOUR::Automatable::non_realtime_locate
11  ARDOUR::Route::non_realtime_locate
12  ARDOUR::Session::non_realtime_locate
13  ARDOUR::Session::butler_transport_work
14  ARDOUR::Butler::thread_work
15  ARDOUR::Butler::_thread_work
```
2021-05-08 23:29:49 +02:00
..
2020-12-01 12:08:09 +01:00
2021-05-05 17:57:16 +02:00
2021-05-05 17:57:16 +02:00
2021-04-18 22:02:57 +02:00
2021-01-23 23:43:14 +01:00
2021-05-05 17:57:16 +02:00
2021-05-05 17:57:16 +02:00
2020-01-22 02:00:25 +01:00
2019-09-03 05:01:59 +02:00
2021-03-01 22:14:38 +01:00
2021-05-05 17:57:16 +02:00