code: function startInterval() {
      if (intervalId !== null) {
          return;
      }
      intervalId = setInterval(function () {
          if (remainedTasks.length && currentCount < limitCount) {
              var task = remainedTasks.shift();
              currentCount++;
              if (monitorCallback) {
                  monitorCallback("start", remainedTasks);
              }
              var process = originalSpawn.apply(null, task[0]);
              process.on("close", function (code) {
                  if (monitorCallback) {
                      monitorCallback("close", remainedTasks, code);
                  }
                  currentCount--;
                  if (currentCount === 0 && remainedTasks.length === 0) {
                      callWaitAllCallbacks();
                  }
              });
              var callback = remainedTaskCallbacks[task[1]];
              delete remainedTaskCallbacks[task[1]];
              if (callback) {
                  callback(process);
              }
          }
      }, 20);
  }
docs: /*
  Internal method.