Fix crash on loading encode server on Linux (#1466).
authorCarl Hetherington <cth@carlh.net>
Mon, 11 Feb 2019 16:57:49 +0000 (16:57 +0000)
committerCarl Hetherington <cth@carlh.net>
Mon, 11 Feb 2019 16:57:49 +0000 (16:57 +0000)
src/tools/dcpomatic_server.cc

index d29ac0a6367ff56a0314f217b3314936d3438114..3c2cd58dac2592e7f1d46c5eaa1a28a5e8e8fd9e 100644 (file)
@@ -286,6 +286,13 @@ private:
                signal_manager = new wxSignalManager (this);
                Bind (wxEVT_IDLE, boost::bind (&App::idle, this));
 
+               /* Bad things happen (on Linux at least) if the config is reloaded by main_thread;
+                  it seems like there's a race which results in the locked_sstream mutex being
+                  locked before it is initialised.  Calling Config::instance() here loads the config
+                  again in this thread, which seems to work around the problem.
+               */
+               Config::instance();
+
                _icon = new TaskBarIcon;
                _thread = new thread (bind (&App::main_thread, this));