def capture(*observers, &block)
      @lock_a.synchronize do
        add_observers(observers)
        _capture(&block)

        if block_given?
          yield
          _stop
        end
      end
    end
def capture(*observers, &block)
      @lock_a.synchronize do
        add_observers(observers)
        _capture(&block)

        if block_given?
          yield
          _stop
        end
      end
    end
Start capturing paths. Providing a block automatically stops the
 capture process upon termination of the scope.

 @param Array<#update> Observers to be notified of capture
   events. Each observer should expect a hash{} containing a
   +:command+, and potentially +:data+.

 @yield Block that automatically calls #stop at the end of scope
   to cease capture.