Kaynağa Gözat

Merge branch 'fix-eventadmin-crash'

* fix-eventadmin-crash:
  Use a smaller thread pool size for improved test coverage.
  Explicitly free heap memory to avoid leaks.
  Fixed crash in case # of "sendEvent" calls exceeds thread pool size.
  Fix dead locks when sendEvent is called from a "handleEvent" method.
  Delete test suites when stopping plug-ins.
  Fixed typo in debug message.
Sascha Zelzer 13 yıl önce
ebeveyn
işleme
2bdae7e819
22 değiştirilmiş dosya ile 134 ekleme ve 165 silme
  1. 12 0
      Libs/PluginFramework/Testing/ConfigAdminTest/ctkConfigAdminTestActivator.cpp
  2. 7 0
      Libs/PluginFramework/Testing/Cpp/ctkPluginFrameworkTestRunner.cpp
  3. 2 2
      Libs/PluginFramework/Testing/EventAdminTest/ctkEAScenario3TestSuite.cpp
  4. 2 2
      Libs/PluginFramework/Testing/EventAdminTest/ctkEAScenario4TestSuite.cpp
  5. 16 0
      Libs/PluginFramework/Testing/EventAdminTest/ctkEventAdminTestActivator.cpp
  6. 6 0
      Libs/PluginFramework/Testing/MetaTypeTest/ctkMetaTypeTestActivator.cpp
  7. 2 0
      Plugins/org.commontk.eventadmin/Testing/Cpp/ctkEventAdminImplTestMain.cpp
  8. 5 0
      Plugins/org.commontk.eventadmin/ctkEAConfiguration.cpp
  9. 1 0
      Plugins/org.commontk.eventadmin/ctkEAConfiguration_p.h
  10. 4 0
      Plugins/org.commontk.eventadmin/ctkEventAdminService.cpp
  11. 21 0
      Plugins/org.commontk.eventadmin/dispatch/ctkEAInterruptibleThread_p.h
  12. 3 1
      Plugins/org.commontk.eventadmin/dispatch/ctkEALinkedQueue.cpp
  13. 1 1
      Plugins/org.commontk.eventadmin/dispatch/ctkEALinkedQueue_p.h
  14. 15 4
      Plugins/org.commontk.eventadmin/dispatch/ctkEAPooledExecutor.cpp
  15. 2 12
      Plugins/org.commontk.eventadmin/tasks/ctkEAHandlerTask.tpp
  16. 0 8
      Plugins/org.commontk.eventadmin/tasks/ctkEAHandlerTask_p.h
  17. 27 71
      Plugins/org.commontk.eventadmin/tasks/ctkEASyncDeliverTasks.tpp
  18. 6 0
      Plugins/org.commontk.eventadmin/tasks/ctkEASyncDeliverTasks_p.h
  19. 1 38
      Plugins/org.commontk.eventadmin/tasks/ctkEASyncThread.cpp
  20. 1 20
      Plugins/org.commontk.eventadmin/tasks/ctkEASyncThread_p.h
  21. 0 5
      Plugins/org.commontk.eventadmin/util/ctkEARendezvous.cpp
  22. 0 1
      Plugins/org.commontk.eventadmin/util/ctkEARendezvous_p.h

+ 12 - 0
Libs/PluginFramework/Testing/ConfigAdminTest/ctkConfigAdminTestActivator.cpp

@@ -92,6 +92,18 @@ void ctkConfigAdminTestActivator::start(ctkPluginContext* context)
 void ctkConfigAdminTestActivator::stop(ctkPluginContext* context)
 {
   Q_UNUSED(context);
+
+  delete configAdminTestSuite;
+  delete managedServiceTestSuite;
+  delete managedServiceFactoryTestSuite;
+  delete configPluginTestSuite;
+  delete configListenerTestSuite;
+
+  configAdminTestSuite = 0;
+  managedServiceTestSuite = 0;
+  managedServiceFactoryTestSuite = 0;
+  configPluginTestSuite = 0;
+  configListenerTestSuite = 0;
 }
 
 Q_EXPORT_PLUGIN2(org_commontk_configadmintest, ctkConfigAdminTestActivator)

+ 7 - 0
Libs/PluginFramework/Testing/Cpp/ctkPluginFrameworkTestRunner.cpp

@@ -73,6 +73,13 @@ public:
       ++count;
     }
 
+    // stop the specified plugins
+    foreach(StartPluginPair pluginInfo, startPluginInfos)
+    {
+      QSharedPointer<ctkPlugin> plugin = context->getPlugin(pluginInfo.first);
+      plugin->stop();
+    }
+
     qDebug() << "#########" << count << "out of" << refs.size() << "test suites passed #########";
     if (result > 0)
     {

+ 2 - 2
Libs/PluginFramework/Testing/EventAdminTest/ctkEAScenario3TestSuite.cpp

@@ -87,7 +87,7 @@ void ctkEAScenario3EventConsumer::handleEvent(const ctkEvent& event)
     {
       /* its an asyncronous message */
       synchMessages++;
-      qDebug() << "recived a Synchronous event with message:" << message;
+      qDebug() << "received a Synchronous event with message:" << message;
     }
     else
     {
@@ -95,7 +95,7 @@ void ctkEAScenario3EventConsumer::handleEvent(const ctkEvent& event)
       if (!message.isNull())
       {
         asynchMessages++;
-        qDebug() << "recived an Asynchronus event with message:" << message;
+        qDebug() << "received an Asynchronus event with message:" << message;
       }
     }
 

+ 2 - 2
Libs/PluginFramework/Testing/EventAdminTest/ctkEAScenario4TestSuite.cpp

@@ -93,7 +93,7 @@ void ctkEAScenario4EventConsumer::handleEvent(const ctkEvent& event)
     {
       /* its an asyncronous message */
       synchMessages++;
-      qDebug() << "recived a Synchronous event with message:" << message;
+      qDebug() << "received a Synchronous event with message:" << message;
     }
     else
     {
@@ -101,7 +101,7 @@ void ctkEAScenario4EventConsumer::handleEvent(const ctkEvent& event)
       if (!message.isNull())
       {
         asynchMessages++;
-        qDebug() << "recived an Asynchronus event with message:" << message;
+        qDebug() << "received an Asynchronus event with message:" << message;
       }
     }
 

+ 16 - 0
Libs/PluginFramework/Testing/EventAdminTest/ctkEventAdminTestActivator.cpp

@@ -104,6 +104,22 @@ void ctkEventAdminTestActivator::start(ctkPluginContext* context)
 void ctkEventAdminTestActivator::stop(ctkPluginContext* context)
 {
   Q_UNUSED(context);
+
+  delete topicWildcardTestSuite;
+  delete topicWildcardTestSuiteSS;
+  delete scenario1TestSuite;
+  delete scenario1TestSuiteSS;
+  delete scenario2TestSuite;
+  delete scenario3TestSuite;
+  delete scenario4TestSuite;
+
+  topicWildcardTestSuite = 0;
+  topicWildcardTestSuiteSS = 0;
+  scenario1TestSuite = 0;
+  scenario1TestSuiteSS = 0;
+  scenario2TestSuite = 0;
+  scenario3TestSuite = 0;
+  scenario4TestSuite = 0;
 }
 
 Q_EXPORT_PLUGIN2(org_commontk_eventadmintest, ctkEventAdminTestActivator)

+ 6 - 0
Libs/PluginFramework/Testing/MetaTypeTest/ctkMetaTypeTestActivator.cpp

@@ -74,6 +74,12 @@ void ctkMetaTypeTestActivator::start(ctkPluginContext* context)
 void ctkMetaTypeTestActivator::stop(ctkPluginContext* context)
 {
   Q_UNUSED(context);
+
+  delete attrPwdTestSuite;
+  delete localeTestSuite;
+
+  attrPwdTestSuite = 0;
+  localeTestSuite = 0;
 }
 
 Q_EXPORT_PLUGIN2(org_commontk_metatypetest, ctkMetaTypeTestActivator)

+ 2 - 0
Plugins/org.commontk.eventadmin/Testing/Cpp/ctkEventAdminImplTestMain.cpp

@@ -63,6 +63,8 @@ int main(int argc, char** argv)
   fwProps.insert("pluginfw.testDir", testpluginDir);
   fwProps.insert("event.impl", "org.commontk.eventadmin");
 
+  fwProps.insert("org.commontk.eventadmin.ThreadPoolSize", 10);
+
   testRunner.init(fwProps);
   return testRunner.run(argc, argv);
 }

+ 5 - 0
Plugins/org.commontk.eventadmin/ctkEAConfiguration.cpp

@@ -77,6 +77,11 @@ ctkEAConfiguration::ctkEAConfiguration(ctkPluginContext* pluginContext )
   }
 }
 
+ctkEAConfiguration::~ctkEAConfiguration()
+{
+  this->destroy();
+}
+
 void ctkEAConfiguration::updateFromConfigAdmin(const ctkDictionary& config)
 {
   QMutexLocker l(&mutex);

+ 1 - 0
Plugins/org.commontk.eventadmin/ctkEAConfiguration_p.h

@@ -153,6 +153,7 @@ private:
 public:
 
   ctkEAConfiguration(ctkPluginContext* pluginContext);
+  ~ctkEAConfiguration();
 
   void updated(const ctkDictionary& properties);
 

+ 4 - 0
Plugins/org.commontk.eventadmin/ctkEventAdminService.cpp

@@ -41,6 +41,10 @@ ctkEventAdminService::ctkEventAdminService(ctkPluginContext* context,
 ctkEventAdminService::~ctkEventAdminService()
 {
   qDeleteAll(slotHandler);
+  foreach(QList<ctkEASignalPublisher*> l, signalPublisher.values())
+  {
+    qDeleteAll(l);
+  }
 }
 
 void ctkEventAdminService::postEvent(const ctkEvent& event)

+ 21 - 0
Plugins/org.commontk.eventadmin/dispatch/ctkEAInterruptibleThread_p.h

@@ -44,6 +44,27 @@ public:
   void setAutoDelete(bool autoDelete) { ref = autoDelete ? 0 : -1; }
 };
 
+class ctkEAScopedRunnableReference
+{
+
+public:
+
+  ctkEAScopedRunnableReference(ctkEARunnable* runnable)
+    : runnable(runnable)
+  {
+    ++runnable->ref;
+  }
+
+  ~ctkEAScopedRunnableReference()
+  {
+    if (!--runnable->ref) delete runnable;
+  }
+
+private:
+
+  ctkEARunnable* runnable;
+};
+
 /**
  * A QThread subclass which can be interrupted when waiting
  * on a wait condition.

+ 3 - 1
Plugins/org.commontk.eventadmin/dispatch/ctkEALinkedQueue.cpp

@@ -87,6 +87,7 @@ ctkEARunnable* ctkEALinkedQueue::take()
       catch(const ctkEAInterruptedException& ex)
       {
         --waitingForTake_;
+        if (x && x->autoDelete() && !--x->ref) delete x;
         putLockWait_.wakeOne();
         throw ex;
       }
@@ -144,6 +145,7 @@ ctkEARunnable* ctkEALinkedQueue::poll(long msecs)
     catch(const ctkEAInterruptedException& ex)
     {
       --waitingForTake_;
+      if (x && x->autoDelete() && !--x->ref) delete x;
       putLockWait_.wakeOne();
       throw ex;
     }
@@ -176,8 +178,8 @@ ctkEARunnable* ctkEALinkedQueue::extract()
     {
       x = first->value;
       first->value = 0;
+      delete head_;
       head_ = first;
-      delete first;
     }
     return x;
   }

+ 1 - 1
Plugins/org.commontk.eventadmin/dispatch/ctkEALinkedQueue_p.h

@@ -48,7 +48,7 @@ struct ctkEALinkedNode
   {
     if (value && value->autoDelete())
     {
-      if (!--value->ref) delete value;
+      !--value->ref;
     }
   }
 

+ 15 - 4
Plugins/org.commontk.eventadmin/dispatch/ctkEAPooledExecutor.cpp

@@ -379,7 +379,9 @@ ctkEAPooledExecutor::DiscardOldestWhenBlocked::DiscardOldestWhenBlocked(ctkEAPoo
 
 bool ctkEAPooledExecutor::DiscardOldestWhenBlocked::blockedAction(ctkEARunnable* command)
 {
-  pe->handOff_->poll(0);
+  ctkEARunnable* tmp = pe->handOff_->poll(0);
+  if (tmp && tmp->autoDelete() && !--tmp->ref) delete tmp;
+
   if (!pe->handOff_->offer(command, 0))
   {
     const bool autoDelete = command->autoDelete();
@@ -393,7 +395,7 @@ void ctkEAPooledExecutor::addThread(ctkEARunnable* command)
 {
   Worker* worker = new Worker(this, command);
   ++worker->ref;
- ctkEAInterruptibleThread* thread = getThreadFactory()->newThread(worker);
+  ctkEAInterruptibleThread* thread = getThreadFactory()->newThread(worker);
   threads_.insert(worker, thread);
   ++poolSize_;
 
@@ -426,8 +428,17 @@ void ctkEAPooledExecutor::workerDone(Worker* w)
     try
     {
       ctkEARunnable* r = handOff_->poll(0);
-      if (r != 0 && !shutdown_) // just consume task if shut down
-        addThread(r);
+      if (r != 0)
+      {
+        if(shutdown_) // just consume task if shut down
+        {
+          if (r->autoDelete() && !r->ref) delete r;
+        }
+        else
+        {
+          addThread(r);
+        }
+      }
     }
     catch(const ctkEAInterruptedException& ) {
       return;

+ 2 - 12
Plugins/org.commontk.eventadmin/tasks/ctkEAHandlerTask.tpp

@@ -61,8 +61,7 @@ private:
 template<class BlacklistingHandlerTasks>
 ctkEAHandlerTask<BlacklistingHandlerTasks>::ctkEAHandlerTask(const ctkServiceReference& eventHandlerRef,
                                                              const ctkEvent& event, BlacklistingHandlerTasks* handlerTasks)
-  : eventHandlerRef(eventHandlerRef), event(event), handlerTasks(handlerTasks),
-    finishedTask(false)
+  : eventHandlerRef(eventHandlerRef), event(event), handlerTasks(handlerTasks)
 {
 
 }
@@ -70,7 +69,7 @@ ctkEAHandlerTask<BlacklistingHandlerTasks>::ctkEAHandlerTask(const ctkServiceRef
 template<class BlacklistingHandlerTasks>
 ctkEAHandlerTask<BlacklistingHandlerTasks>::ctkEAHandlerTask(const Self& task)
   : eventHandlerRef(task.eventHandlerRef), event(task.event),
-    handlerTasks(task.handlerTasks), finishedTask(task.finishedTask)
+    handlerTasks(task.handlerTasks)
 {
 
 }
@@ -82,7 +81,6 @@ ctkEAHandlerTask<BlacklistingHandlerTasks>::operator=(const Self& task)
   eventHandlerRef = task.eventHandlerRef;
   event = task.event;
   handlerTasks = task.handlerTasks;
-  finishedTask = task.finishedTask;
   return *this;
 }
 
@@ -110,7 +108,6 @@ void ctkEAHandlerTask<BlacklistingHandlerTasks>::execute()
         << "Exception during event dispatch [" << event.getTopic() << "| Plugin("
         << eventHandlerRef.getPlugin()->getSymbolicName() << ")]";
   }
-  finishedTask.testAndSetOrdered(0, 1);
 }
 
 template<class BlacklistingHandlerTasks>
@@ -118,10 +115,3 @@ void ctkEAHandlerTask<BlacklistingHandlerTasks>::blackListHandler()
 {
   handlerTasks->blackListRef(eventHandlerRef);
 }
-
-template<class BlacklistingHandlerTasks>
-bool ctkEAHandlerTask<BlacklistingHandlerTasks>::finished() const
-{
-  return finishedTask.fetchAndAddOrdered(0);
-}
-

+ 0 - 8
Plugins/org.commontk.eventadmin/tasks/ctkEAHandlerTask_p.h

@@ -49,9 +49,6 @@ private:
   // Used to blacklist the service or get the service object for the reference
   BlacklistingHandlerTasks* handlerTasks;
 
-  // Is this handler finished
-  mutable QAtomicInt finishedTask;
-
   class _GetAndUngetEventHandler;
 
 public:
@@ -86,11 +83,6 @@ public:
    */
   void blackListHandler();
 
-  /**
-   * Is the delivery finished
-   */
-  bool finished() const;
-
 };
 
 #include "ctkEAHandlerTask.tpp"

+ 27 - 71
Plugins/org.commontk.eventadmin/tasks/ctkEASyncDeliverTasks.tpp

@@ -37,17 +37,14 @@ public:
   ctkEARendezvous timerBarrier;
   ctkEARendezvous startBarrier;
 
-  _TimeoutRunnable(ctkEARendezvous* cascadingBarrier, HandlerTask* task)
-    : cascadingBarrier(cascadingBarrier), task(task)
+  _TimeoutRunnable(HandlerTask* task)
+    : task(task)
   {
 
   }
 
   void run()
   {
-    ctkEASyncThread* myThread = qobject_cast<ctkEASyncThread*>(QThread::currentThread());
-    Q_ASSERT(myThread != 0);
-    myThread->init(&timerBarrier, cascadingBarrier);
     try
     {
       // notify the outer thread to start the timer
@@ -61,17 +58,10 @@ public:
     {
       // this can happen on shutdown, so we ignore it
     }
-    catch (...)
-    {
-      myThread->uninit();
-      throw;
-    }
-    myThread->uninit();
   }
 
 private:
 
-  ctkEARendezvous* cascadingBarrier;
   HandlerTask* task;
 };
 
@@ -152,19 +142,8 @@ void ctkEASyncDeliverTasks<HandlerTask>::execute(const QList<HandlerTask>& tasks
 template<class HandlerTask>
 void ctkEASyncDeliverTasks<HandlerTask>::executeInSyncMaster(const QList<HandlerTask>& tasks)
 {
-  QThread* sleepingThread = QThread::currentThread();
-  ctkEASyncThread* syncThread = qobject_cast<ctkEASyncThread*>(sleepingThread);
-  ctkEARendezvous cascadingBarrier;
-  // check if this is a cascaded event sending
-  if (syncThread)
-  {
-    // wake up outer thread
-    if (syncThread->isTopMostHandler())
-    {
-      syncThread->getTimerBarrier()->waitForRendezvous();
-    }
-    syncThread->innerEventHandlingStart();
-  }
+  QThread* const sleepingThread = QThread::currentThread();
+  ctkEASyncThread* const syncThread = qobject_cast<ctkEASyncThread*>(sleepingThread);
 
   foreach(HandlerTask task, tasks)
   {
@@ -173,11 +152,24 @@ void ctkEASyncDeliverTasks<HandlerTask>::executeInSyncMaster(const QList<Handler
       // no timeout, we can directly execute
       task.execute();
     }
+    else if (syncThread != 0)
+    {
+      // if this is a cascaded event, we directly use this thread
+      // otherwise we could end up in a starvation
+      //TODO use Qt4.7 API
+      //long startTime = System.currentTimeMillis();
+      QDateTime startTime = QDateTime::currentDateTime();
+      task.execute();
+      if (startTime.time().msecsTo(QDateTime::currentDateTime().time()) > timeout)
+      {
+        task.blackListHandler();
+      }
+    }
     else
     {
       _TimeoutRunnable<HandlerTask>* timeoutRunnable
-          = new _TimeoutRunnable<HandlerTask>(&cascadingBarrier, &task);
-      ++timeoutRunnable->ref;
+          = new _TimeoutRunnable<HandlerTask>(&task);
+      ctkEAScopedRunnableReference runnableRef(timeoutRunnable);
 
       ctkEARendezvous* startBarrier = &timeoutRunnable->startBarrier;
       ctkEARendezvous* timerBarrier = &timeoutRunnable->timerBarrier;
@@ -187,55 +179,19 @@ void ctkEASyncDeliverTasks<HandlerTask>::executeInSyncMaster(const QList<Handler
       startBarrier->waitForRendezvous();
 
       // timeout handling
-      bool finished = true;
-      long sleepTime = timeout;
-      do {
-        finished = true;
-        // we sleep for the sleep time
-        // if someone wakes us up it's the inner task who either
-        // has finished or a cascading event
-        //TODO use Qt4.7 API
-        //long startTime = System.currentTimeMillis();
-        QDateTime startTime = QDateTime::currentDateTime();
-        try
-        {
-          timerBarrier->waitAttemptForRendezvous(sleepTime);
-          // if this occurs no timeout occured or we have a cascaded event
-          if (!task.finished())
-          {
-            // adjust remaining sleep time
-            //TODO use Qt4.7 API
-            //sleepTime = timeout - (System.currentTimeMillis() - startTime);
-            sleepTime = timeout - startTime.time().msecsTo(QDateTime::currentDateTime().time());
-            cascadingBarrier.waitForRendezvous();
-            finished = task.finished();
-          }
-        }
-        catch (const ctkEATimeoutException& )
-        {
-          // if we timed out, we have to blacklist the handler
-          task.blackListHandler();
-        }
+      // we sleep for the sleep time
+      // if someone wakes us up it's the finished inner task
+      try
+      {
+        timerBarrier->waitAttemptForRendezvous(timeout);
       }
-      while ( !finished );
-
-      if (!--timeoutRunnable->ref) delete timeoutRunnable;
-    }
-  }
-
-  // wake up outer thread again if cascaded
-  if (syncThread)
-  {
-    syncThread->innerEventHandlingStopped();
-    if (syncThread->isTopMostHandler())
-    {
-      if (!syncThread->getTimerBarrier()->isTimedOut())
+      catch (const ctkEATimeoutException& )
       {
-        syncThread->getCascadingBarrier()->waitForRendezvous();
+        // if we timed out, we have to blacklist the handler
+        task.blackListHandler();
       }
     }
   }
-
 }
 
 template<class HandlerTask>

+ 6 - 0
Plugins/org.commontk.eventadmin/tasks/ctkEASyncDeliverTasks_p.h

@@ -70,11 +70,17 @@ private:
   /** The timeout for event handlers, 0 = disabled. */
   long timeout;
 
+  /**
+   * The matcher interface for checking if timeout handling
+   * is disabled for the handler.
+   * Matching is based on the class name of the event handler.
+   */
   struct Matcher
   {
     virtual bool match(const QString& className) const = 0;
   };
 
+  /** Match a class name. */
   struct ClassMatcher : public Matcher
   {
   private:

+ 1 - 38
Plugins/org.commontk.eventadmin/tasks/ctkEASyncThread.cpp

@@ -23,44 +23,7 @@
 #include "ctkEASyncThread_p.h"
 
 ctkEASyncThread::ctkEASyncThread(ctkEARunnable* target, QObject* parent)
-  : ctkEAInterruptibleThread(target, parent), counter(0)
+  : ctkEAInterruptibleThread(target, parent)
 {
   this->setObjectName(QString("ctkEASyncThread") + QString::number(reinterpret_cast<qint64>(target)));
 }
-
-void ctkEASyncThread::init(ctkEARendezvous* timerBarrier, ctkEARendezvous* cascadingBarrier)
-{
-  this->timerBarrier.testAndSetOrdered(0, timerBarrier);
-  this->cascadingBarrier.testAndSetOrdered(0, cascadingBarrier);
-}
-
-void ctkEASyncThread::uninit()
-{
-  this->timerBarrier.testAndSetOrdered(timerBarrier, 0);
-  this->cascadingBarrier.testAndSetOrdered(cascadingBarrier, 0);
-}
-
-ctkEARendezvous* ctkEASyncThread::getTimerBarrier() const
-{
-  return timerBarrier.fetchAndAddOrdered(0);
-}
-
-ctkEARendezvous* ctkEASyncThread::getCascadingBarrier() const
-{
-  return cascadingBarrier.fetchAndAddOrdered(0);
-}
-
-bool ctkEASyncThread::isTopMostHandler() const
-{
-  return counter.fetchAndAddOrdered(0) == 0;
-}
-
-void ctkEASyncThread::innerEventHandlingStart()
-{
-  counter.ref();
-}
-
-void ctkEASyncThread::innerEventHandlingStopped()
-{
-  counter.deref();
-}

+ 1 - 20
Plugins/org.commontk.eventadmin/tasks/ctkEASyncThread_p.h

@@ -32,22 +32,13 @@
 
 /**
  * This thread class is used for sending the events
- * synchronously.
+ * synchronously. It acts like a marker.
  */
 class ctkEASyncThread : public ctkEAInterruptibleThread
 {
 
   Q_OBJECT
 
-private:
-
-  /** Counter to track the nesting level. */
-  mutable QAtomicInt counter;
-
-  /** The barriers for synchronizing. */
-  mutable QAtomicPointer<ctkEARendezvous> timerBarrier;
-  mutable QAtomicPointer<ctkEARendezvous> cascadingBarrier;
-
 public:
 
   /**
@@ -55,16 +46,6 @@ public:
    */
   ctkEASyncThread(ctkEARunnable* target, QObject* parent = 0);
 
-  void init(ctkEARendezvous* timerBarrier, ctkEARendezvous* cascadingBarrier);
-  void uninit();
-
-  ctkEARendezvous* getTimerBarrier() const;
-  ctkEARendezvous* getCascadingBarrier() const;
-
-  bool isTopMostHandler() const;
-
-  void innerEventHandlingStart();
-  void innerEventHandlingStopped();
 };
 
 #endif // CTKEASYNCTHREAD_P_H

+ 0 - 5
Plugins/org.commontk.eventadmin/util/ctkEARendezvous.cpp

@@ -62,8 +62,3 @@ void ctkEARendezvous::waitAttemptForRendezvous(long timeout)
     throw te;
   }
 }
-
-bool ctkEARendezvous::isTimedOut() const
-{
-  return timedout.fetchAndAddOrdered(0);
-}

+ 0 - 1
Plugins/org.commontk.eventadmin/util/ctkEARendezvous_p.h

@@ -56,7 +56,6 @@ public:
    */
   void waitAttemptForRendezvous(long timeout);
 
-  bool isTimedOut() const;
 };
 
 #endif // CTKEARENDEZVOUS_P_H