From 29dfc8d391c7971c965a4b708a23d7d29e9a4ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 30 Apr 2006 18:18:06 +0000 Subject: [PATCH] The BTranslatorRoster now locks the looper before it adds/removes it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17281 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/translation/TranslatorRoster.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/kits/translation/TranslatorRoster.cpp b/src/kits/translation/TranslatorRoster.cpp index dc1367cde3..2ceab5cb59 100644 --- a/src/kits/translation/TranslatorRoster.cpp +++ b/src/kits/translation/TranslatorRoster.cpp @@ -119,8 +119,10 @@ BTranslatorRoster::Private::Private() fLazyScanning(true) { // we're sneaking us into the BApplication - if (be_app != NULL) + if (be_app != NULL && be_app->Lock()) { be_app->AddHandler(this); + be_app->Unlock(); + } } @@ -128,8 +130,11 @@ BTranslatorRoster::Private::~Private() { stop_watching(this); - if (Looper()) + if (Looper() && LockLooper()) { + BLooper* looper = Looper(); Looper()->RemoveHandler(this); + looper->Unlock(); + } // Release all translators, so that they can delete themselves