diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/drumgizmo.cc | 1 | ||||
-rw-r--r-- | src/drumkitloader.cc | 9 | ||||
-rw-r--r-- | src/drumkitloader.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc index 32ad66e..b5e5c63 100644 --- a/src/drumgizmo.cc +++ b/src/drumgizmo.cc @@ -56,6 +56,7 @@ DrumGizmo::~DrumGizmo() i++; } */ + loader.stop(); } /* diff --git a/src/drumkitloader.cc b/src/drumkitloader.cc index be74624..c997dfb 100644 --- a/src/drumkitloader.cc +++ b/src/drumkitloader.cc @@ -40,6 +40,13 @@ DrumKitLoader::DrumKitLoader(DrumGizmo *dg) DrumKitLoader::~DrumKitLoader() { + if(!quitit) { + stop(); + } +} + +void DrumKitLoader::stop() +{ quitit = true; semaphore.post(); wait_stop(); @@ -125,6 +132,8 @@ void DrumKitLoader::thread_main() drumgizmo->sendGUIMessage(ls); a++; + + if(quitit) return; } i++; diff --git a/src/drumkitloader.h b/src/drumkitloader.h index b9bc102..f614ea0 100644 --- a/src/drumkitloader.h +++ b/src/drumkitloader.h @@ -48,6 +48,8 @@ public: bool isDone(); + void stop(); + private: DrumGizmo *drumgizmo; Semaphore semaphore; |