def current
    @lock.synchronize {
      shift_size = length
      @generators.inject(0) do |result, generator|
        shift_size = shift_size - generator.length