stop method

void stop()

Throws if there're pending jobs or requests

Implementation

void stop() {
  for (var i in _isolates) {
    i.kill();
    for (var c in jobCompleters.values) {
      if (!c.isCompleted) {
        c.completeError(IsolatePoolJobCancelled('Isolate pool stopped upon request, cancelling jobs'));
      }
    }
    jobCompleters.clear();

    for (var c in creationCompleters.values) {
      if (!c.isCompleted) {
        c.completeError(
            IsolatePoolJobCancelled('Isolate pool stopped upon request, cancelling instance creation requests'));
      }
    }
    creationCompleters.clear();

    for (var c in _requestCompleters.values) {
      if (!c.isCompleted) {
        c.completeError(
            IsolatePoolJobCancelled('Isolate pool stopped upon request, cancelling pending request'));
      }
    }
    _requestCompleters.clear();
    for (var rPort in receivePorts) {
      rPort.close(); // Issue #3
    }
  }

  _state = IsolatePoolState.stoped;
}