Sha256: bdccefca4c1810c1142a6aa61d5e50266aa8f39aae1859e073fba81fa4cee93f

Contents?: true

Size: 515 Bytes

Versions: 9

Compression:

Stored size: 515 Bytes

Contents

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]
      #
      # @api private
      #
      def call(message)
        mutex.synchronize do
          messages << message
          condition_variable.signal
        end

        self
      end

    end # Sender
  end # Actor
end # Mutant

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mutant-0.8.0 lib/mutant/actor/sender.rb
mutant-0.7.9 lib/mutant/actor/sender.rb
mutant-0.7.8 lib/mutant/actor/sender.rb
mutant-0.7.7 lib/mutant/actor/sender.rb
mutant-0.7.6 lib/mutant/actor/sender.rb
mutant-0.7.5 lib/mutant/actor/sender.rb
mutant-0.7.4 lib/mutant/actor/sender.rb
mutant-0.7.3 lib/mutant/actor/sender.rb
mutant-0.7.2 lib/mutant/actor/sender.rb