diff options
author | David Robillard <d@drobilla.net> | 2009-10-27 18:00:45 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-10-27 18:00:45 +0000 |
commit | c71f419920fc10b16a0448c636761e7c696e58a6 (patch) | |
tree | 9567cf006d165e6c089883845f532b910bb7646c /libs | |
parent | da85f65ec01ce50372f70393db7421d170754b10 (diff) |
Make ARDOUR::init safer.
git-svn-id: svn://localhost/ardour2/branches/3.0@5950 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/globals.cc | 5 | ||||
-rw-r--r-- | libs/ardour/test/testrunner.cpp | 2 | ||||
-rw-r--r-- | libs/pbd/id.cc | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index 471924811a..05894d8377 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -308,6 +308,11 @@ lotsa_files_please () int ARDOUR::init (bool use_vst, bool try_optimization) { + if (!Glib::thread_supported()) + Glib::thread_init(); + + PBD::ID::init (); + extern void setup_enum_writer (); (void) bindtextdomain(PACKAGE, LOCALEDIR); diff --git a/libs/ardour/test/testrunner.cpp b/libs/ardour/test/testrunner.cpp index b680843558..ebbd50543e 100644 --- a/libs/ardour/test/testrunner.cpp +++ b/libs/ardour/test/testrunner.cpp @@ -9,8 +9,6 @@ int main() { - Glib::thread_init (); - PBD::ID::init (); ARDOUR::init (false, false); CppUnit::TestResult testresult; diff --git a/libs/pbd/id.cc b/libs/pbd/id.cc index ab9c7e7392..25c96c305e 100644 --- a/libs/pbd/id.cc +++ b/libs/pbd/id.cc @@ -38,7 +38,8 @@ uint64_t ID::_counter = 0; void ID::init () { - counter_lock = new Glib::Mutex; + if (!counter_lock) + counter_lock = new Glib::Mutex; } ID::ID () |