diff --git a/arangod/Scheduler/SchedulerThread.cpp b/arangod/Scheduler/SchedulerThread.cpp index 44aeab15a4..bee372abd9 100644 --- a/arangod/Scheduler/SchedulerThread.cpp +++ b/arangod/Scheduler/SchedulerThread.cpp @@ -171,8 +171,11 @@ void SchedulerThread::destroyTask(Task* task) { //////////////////////////////////////////////////////////////////////////////// void SchedulerThread::signalTask(std::unique_ptr& data) { - _taskData.push(data.release()); - _scheduler->wakeupLoop(_loop); + bool result = _taskData.push(data.get()); + if (result) { + data.release(); + _scheduler->wakeupLoop(_loop); + } } void SchedulerThread::run() {