filesystem/fifo_between_threads_parens.rb

tests/_examples/filesystem/fifo_between_threads_parens.rb in the metorex repository.

# Opening a FIFO waits for the other end to be opened, which another thread
# of the same program may do.
path = "/tmp/metorex_fifo_#{Process.pid()}"
File.mkfifo(path)
written = nil
read = nil
writer = Thread.new() do
  file = File.open(path, "w")
  written = file.syswrite("hello")
  file.close()
end
reader = Thread.new() do
  file = File.open(path, "r")
  read = file.sysread(5)
  file.close()
end
writer.join()
reader.join()
p(written)
p(read)
File.delete(path)

Output:

5
"hello"