ruby-core

Mailing list archive

[#61424] [REJECT?] xmalloc/xfree: reduce atomic ops w/ thread-locals — Eric Wong <normalperson@...>

I'm unsure about this. I _hate_ the extra branches this adds;

13 messages 2014/03/12

[ruby-core:61515] [ruby-trunk - Bug #9617] Windows7 issue with Kernel.spawn close_others => false

From: akr@...
Date: 2014-03-15 14:41:33 UTC
List: ruby-core #61515
Issue #9617 has been updated by Akira Tanaka.


Documentation patch is welcome.

----------------------------------------
Bug #9617: Windows7 issue with Kernel.spawn close_others => false
https://bugs.ruby-lang.org/issues/9617#change-45804

* Author: Lionel PERRIN
* Status: Rejected
* Priority: Normal
* Assignee: 
* Category: platform/mingw
* Target version: 
* ruby -v: ruby 2.0.0p451 (2014-02-24) [i386-mingw32]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
I faced an issue while trying to inherit a file or pipe handle from a master process to its child on windows 7.

I tried this implementation:

* master.rb:

~~~
rd, wr = IO.pipe
puts "Pipe opened: #{rd.fileno} <= #{wr.fileno}"
cmd = "ruby child.rb #{rd.fileno}"
pid = Kernel.spawn cmd, :close_others => false
wr.write "Hello World\n"
Process.wait pid
~~~

* child.rb:

~~~
puts "Child:Start #{ARGV}"
rd = IO.new(ARGV[0].to_i, mode: "r")
puts rd.read
~~~

On windows I get the following output while it works fine on linux.

~~~
Pipe opened: 3 <= 4
Child:Start ["3"]
child.rb:2:in `initialize': Bad file descriptor (Errno::EBADF)
        from child.rb:2:in `new'
        from child.rb:2:in `<main>'
~~~

Note: the same test with the fileno of a file opened from master.rb lead to the same exception in child.rb




-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next