class Concurrent::Channel::Selector::PutClause

Public Class Methods

new(channel, message, block) click to toggle source
# File lib/concurrent/channel/selector/put_clause.rb, line 9
def initialize(channel, message, block)
  @channel = channel
  @message = message
  @block = block
end

Public Instance Methods

execute() click to toggle source
# File lib/concurrent/channel/selector/put_clause.rb, line 15
def execute
  if @channel.offer?(@message).just?
    result = @block ? @block.call : nil
    Concurrent::Maybe.just(result)
  else
    Concurrent::Maybe.nothing
  end
end