[#4858] Build fails on OSX Tiger 10.4 — noreply@...

Bugs item #1883, was opened at 2005-05-06 14:55

21 messages 2005/05/06
[#4862] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Yukihiro Matsumoto <matz@...> 2005/05/07

Hi,

[#4865] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Ryan Davis <ryand-ruby@...> 2005/05/07

[#4868] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — nobu.nokada@... 2005/05/07

Hi,

[#5053] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Shugo Maeda <shugo@...> 2005/05/19

Hi,

[#5056] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Mark Hubbart <discordantus@...> 2005/05/19

On 5/19/05, Shugo Maeda <shugo@ruby-lang.org> wrote:

[#4874] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...>

Hello all,

31 messages 2005/05/10
[#4879] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Pit Capitain <pit@...> 2005/05/11

Ilias Lazaridis schrieb:

[#4883] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

Pit Capitain wrote:

[#4884] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ryan Davis <ryand-ruby@...> 2005/05/12

[#4888] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

Ryan Davis wrote:

[#4889] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — ES <ruby-ml@...> 2005/05/12

[#4890] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

ES wrote:

[#4891] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Alexander Kellett <ruby-lists@...> 2005/05/12

On May 12, 2005, at 3:13 PM, Ilias Lazaridis wrote:

[#4911] Pointless argc check in Array#select — noreply@...

Patches item #1900, was opened at 2005-05-12 09:33

11 messages 2005/05/12

[#4919] - Hierarchical/Modular Directory Structure — Ilias Lazaridis <ilias@...>

The source-code structure should be simplified, lowering barriers for

20 messages 2005/05/12

select() on non-sockets in eval.c

From: BG - Ben Armstrong <BArmstrong@...>
Date: 2005-05-24 16:49:39 UTC
List: ruby-core #5088
In eval.c, select is used to synchronize IO in ruby threads, but on some
platforms select() does not work on non-sockets.  We are told that
Windows is just such a platform.  However, there are no exceptions in
the code to handle the Windows case, which is a bit puzzling.
Apparently, by some accident of the Windows select() implementation,
this doesn't matter, so synchronizing IO in Ruby threads works on
Windows.

In OpenVMS, this assumption that select() can handle non-socket file
descriptors is a big problem[0].  Ruby threads simply won't work.  When
select() is called on a non-socket, an ENOTSOCK error is thrown.  The
thread this happens to is now no longer runnable, and the program
crashes with a deadlock error, e.g.

       $ ruby -v -e"Thread.new{STDOUT.flush}.join"
       ruby 1.8.2 (2004-12-16) [alpha-vms] 
       deadlock 0x1bdf20: sleep:S  - thread.rb:1
       deadlock 0x1cc1e8: sleep:J(0x1bdf20) (main) - thread.rb:1
       thread.rb:1:in `join': Thread(0x1cc1e8): deadlock (fatal)
               from thread.rb:1    

Now, I'd like to fix this in the OpenVMS ruby port[1], but I don't know
how to "fake" a correct response from select() here:

	 n = select(max+1, &readfds, &writefds, &exceptfds, delay_ptr);

What should n, readfds, writefds and exceptfds be after this call?

Ben

[0] I have discussed this with other OpenVMS developers here:
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=879
611

[1] By the way, we are working on the code for this port started by
Masamichi Akiyoshi that can be found here:
http://www.geocities.jp/vmsruby/en/
It appears he cannot continue with this work any longer, so we're doing
what we can to keep the port moving forward.

In This Thread

Prev Next