Module: Grepfruit::RactorCompat

Defined in:
lib/grepfruit/ractor_compat.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.send_work(worker, data) ⇒ Object



5
6
7
# File 'lib/grepfruit/ractor_compat.rb', line 5

def send_work(worker, data)
  worker.send(data)
end

Instance Method Details

#create_workerObject



10
11
12
13
14
# File 'lib/grepfruit/ractor_compat.rb', line 10

def create_worker(&)
  port = Ractor::Port.new
  worker = Ractor.new(port, &)
  [worker, port]
end

#select_ready(workers_and_ports) ⇒ Object



20
21
22
23
24
25
# File 'lib/grepfruit/ractor_compat.rb', line 20

def select_ready(workers_and_ports)
  ports = workers_and_ports.values
  ready_port, result = Ractor.select(*ports)
  worker = workers_and_ports.key(ready_port)
  [worker, result]
end

#yield_result(_port, data) ⇒ Object



16
17
18
# File 'lib/grepfruit/ractor_compat.rb', line 16

def yield_result(port, data)
  port << data
end