Class: Actor::Messaging::Send

Inherits:
Object
  • Object
show all
Defined in:
lib/actor/messaging/send.rb,
lib/actor/messaging/send/dependency.rb,
lib/actor/messaging/send/substitute.rb

Defined Under Namespace

Modules: Dependency Classes: Substitute

Constant Summary collapse

QueueFullError =
Class.new StandardError

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*arguments) ⇒ Object



22
23
24
25
# File 'lib/actor/messaging/send.rb', line 22

def self.call *arguments
  instance = new
  instance.(*arguments)
end

Instance Method Details

#call(message, address, wait: nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/actor/messaging/send.rb', line 4

def call message, address, wait: nil
  non_block = !wait

  queue = address.queue

  if message.instance_of? ::Module
    message = message.message_name
  end

  begin
    queue.enq message, non_block
  rescue ThreadError
    raise QueueFullError
  end
end