summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-27 18:00:45 +0000
committerDavid Robillard <d@drobilla.net>2009-10-27 18:00:45 +0000
commitc71f419920fc10b16a0448c636761e7c696e58a6 (patch)
tree9567cf006d165e6c089883845f532b910bb7646c /libs
parentda85f65ec01ce50372f70393db7421d170754b10 (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.cc5
-rw-r--r--libs/ardour/test/testrunner.cpp2
-rw-r--r--libs/pbd/id.cc3
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 ()