Sha256: fd02ce5ad0a859a65fe5fb9fdb7161070bf975209823ddab7a1ef26a698ad6d3

Contents?: true

Size: 509 Bytes

Versions: 8

Compression:

Stored size: 509 Bytes

Contents

# frozen_string_literal: true

module Mutant
  module Actor

    # Sender for messages to acting thread
    class Sender
      include Adamantium::Flat, Concord.new(:condition_variable, :mutex, :messages)

      # Send a message to actor
      #
      # @param [Object] message
      #
      # @return [self]
      def call(message)
        mutex.synchronize do
          messages << message
          condition_variable.signal
        end

        self
      end

    end # Sender
  end # Actor
end # Mutant

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mutant-0.8.24 lib/mutant/actor/sender.rb
mutant-0.8.23 lib/mutant/actor/sender.rb
mutant-0.8.22 lib/mutant/actor/sender.rb
mutant-0.8.21 lib/mutant/actor/sender.rb
mutant-0.8.20 lib/mutant/actor/sender.rb
mutant-0.8.19 lib/mutant/actor/sender.rb
mutant-0.8.18 lib/mutant/actor/sender.rb
mutant-0.8.17 lib/mutant/actor/sender.rb