code: def submit(self, func, *args):
          
          with self._lock:
              if self._closing:
                  raise RuntimeError('pool is closing/closed')
              result = Future()
              self._queue.put_nowait((func, args, result))
              self._spawn_workers()
          return result
docs: Run *func* asynchronously.
  
          The function is run in the pool which will run it asynchrously. The
          function is called with positional argument *args*.
  
          The return value is a :class:`Future` that captures the state and the
          future result of the asynchronous function call.