Add a full drain for folly's ManualExecutor.
[folly.git] / folly / executors / ManualExecutor.cpp
index 51ff9c8a8718276ee1d20d1c8812269efa32f703..00ed2f93f59ffe0a7d260c76bb27b372a2c9b8f2 100644 (file)
@@ -69,6 +69,15 @@ size_t ManualExecutor::run() {
   return count;
 }
 
+size_t ManualExecutor::drain() {
+  size_t tasksRun = 0;
+  size_t tasksForSingleRun = 0;
+  while ((tasksForSingleRun = run()) != 0) {
+    tasksRun += tasksForSingleRun;
+  }
+  return tasksRun;
+}
+
 void ManualExecutor::wait() {
   while (true) {
     {