Slide 34
Slide 34 text
require 'socket'
concurrency = 3
child_pids = []
signal_queue = []
socket = TCPServer.open('127.0.0.1', 4481)
concurrency.times do
child_pids << fork do
trap(:INT) { exit }
loop do
connection = socket.accept
connection.write(connection.read)
connection.close
end
end
end
[:INT, :CHLD].each do |sig|
trap(sig) do
signal_queue << sig
end
end
23