Slide 32
Slide 32 text
Debugging Ractor applications
ワーカーは音程でRactorを、マスターはドラムで結果の違いを表現してるよ!
32
Demo
NQueens
Logger
Debugger
MIDI MIDI
dRuby
Ractor
Ractor.new(rinda) do |ts|
while true
ts.break('nq_loop')
sym, size, r1, r2 = ts.take([:nq, Integer, Integer, Integer])
ts.log([:nq_begin, r1, r2])
ts.write([:nq_ans, size, r1, r2, NQueen.nq2(size, r1, r2)])
ts.log([:nq_end, r1, r2])
end
end
def take_a(rinda, size)
found = 0
size.times.reverse_each do |r1|
size.times.reverse_each do |r2|
tuple = rinda.take(
[:nq_ans, size, r1, r2, nil])
rinda.log(tuple)
found += tuple[4]
end
end
found
end