code: synchronized public void stop() {
      process = false;
      BlockEncodeRequest temp = new BlockEncodeRequest();
      temp.setAll(null, -1, -1, -1, -1, null);
      int count = frameThreadMap.size();
      for(int i = 0; i < count; i++) {
        unassignedEncodeRequests.add(temp);
      }
    }
docs: Notify this manager that it may stop as soon as all currently outstanding
  requests are completed. Future calls to addRequest() will clear this stop
  state.