The availability of rb_thread_blocking_region is announced by a #define HAVE_RB_THREAD_BLOCKING_REGION. At least on JRuby, supporting the TRAP_X macros would be a lot of work an it would be nice if pcap could run there, too, sometime, without forcing ruby version 1.9
-Tim -- Gesendet von meinem Palm Pre Dirkjan Bussink <[email protected]> schrieb am 24.09.2010 19:27: Hello, The best way to handle this, is to detect whether rb_thread_blocking_region is available or not and switch based on that instead of relying on version numbers. In general it's a better approach to test for the availability of certain functionality instead of hard coding dependencies on specific versions. I don't know if it's at all possible to provide TRAP_BEG / TRAP_END, maybe someone else can weigh in on that. -- Regards, Dirkjan On 24 Sep 2010, at 10:52, ngollan wrote: > Hi, > > I'm trying to make the pcap gem work on Rubinius. That gem uses the > trapping mechanism (TRAP_BEG/TRAP_END) from the 1.8.7 API, which > Rubinius does not provide; instead, there's the > rb_thread_blocking_region call from the 1.9 API. Now things get > complicated, since Rubinius announces RUBY_VERSION 1.8.7, so I cannot > use the version string for disambiguation. > > For now, it seems to be possible to use the (rbx-specific) RUBY_ENGINE > constant, but that's not defined in MRI 1.8.x. What I'm doing in > extconf.rb right now is: > > begin > if RUBY_VERSION =~ /^1\.9\./ or RUBY_ENGINE == "rbx" > cflags << '-DHAVE_1_9_THREAD_API' > end > rescue NameError > # ignore errors trying to accept RUBY_ENGINE > end > > It would be nice if rbx provided the TRAP_* macros like MRI does, at > least as long as it announces version 1.8. > > -- > --- !ruby/object:MailingList > name: rubinius-dev > view: http://groups.google.com/group/rubinius-dev?hl=en > post: [email protected] > unsubscribe: [email protected] -- --- !ruby/object:MailingList name: rubinius-dev view: http://groups.google.com/group/rubinius-dev?hl=en post: [email protected] unsubscribe: [email protected] -- --- !ruby/object:MailingList name: rubinius-dev view: http://groups.google.com/group/rubinius-dev?hl=en post: [email protected] unsubscribe: [email protected]
