def start(arg = nil)
      return if running?

      @thread = Thread.new do
        Thread.current.abort_on_exception = true
        run(arg)
      end
    end
def start(arg = nil)
      return if running?

      @thread = Thread.new do
        Thread.current.abort_on_exception = true
        run(arg)
      end
    end
Starts a new managed thread if no thread is currently running.
 The thread invokes the +run+ method of the class that manages it.

 @param arg the argument to pass to the +#run+ method
 @return [Thread, nil] the newly created thread, or +nil+ if
                       there was already a running thread