THRIFT-2872 Fix dead lock when all tasks are expired

If manager_->removeExpiredTasks() cleared all tasks, we didn't notify
those who are waiting for maxMonitor_. This patch fixes it.
diff --git a/lib/cpp/src/thrift/concurrency/ThreadManager.cpp b/lib/cpp/src/thrift/concurrency/ThreadManager.cpp
index 0e7ccd8..a2b44d4 100644
--- a/lib/cpp/src/thrift/concurrency/ThreadManager.cpp
+++ b/lib/cpp/src/thrift/concurrency/ThreadManager.cpp
@@ -271,13 +271,13 @@
             if (task->state_ == ThreadManager::Task::WAITING) {
               task->state_ = ThreadManager::Task::EXECUTING;
             }
+          }
 
-            /* If we have a pending task max and we just dropped below it, wakeup any
-               thread that might be blocked on add. */
-            if (manager_->pendingTaskCountMax_ != 0
-                && manager_->tasks_.size() <= manager_->pendingTaskCountMax_ - 1) {
+          /* If we have a pending task max and we just dropped below it, wakeup any
+             thread that might be blocked on add. */
+          if (manager_->pendingTaskCountMax_ != 0
+                  && manager_->tasks_.size() <= manager_->pendingTaskCountMax_ - 1) {
               manager_->maxMonitor_.notify();
-            }
           }
         } else {
           idle_ = true;