Sha256: d6f144ba9a64e8be40c7a1f260a0ae1e7167b927e90ee4847bf5a48aa416cfe4

Contents?: true

Size: 314 Bytes

Versions: 1

Compression:

Stored size: 314 Bytes

Contents

# frozen_string_literal: true

module Polyphony
  # Event watcher for thread-safe synchronisation
  class Event
    def await
      @fiber = Fiber.current
      Thread.current.agent.wait_event(true)
    end

    def signal(value = nil)
      @fiber&.schedule(value)
    ensure
      @fiber = nil
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
polyphony-0.43.8 lib/polyphony/event.rb