[#16116] RCRchive shutting down — "David A. Black" <dblack@...>

Hi everyone --

22 messages 2008/04/03
[#16119] Re: [ANN] RCRchive shutting down — "Robert Dober" <robert.dober@...> 2008/04/03

This is quite sad news, I feel that a mailing list does not offer all

[#16121] Re: [ANN] RCRchive shutting down — Yukihiro Matsumoto <matz@...> 2008/04/03

Hi,

[#16122] Re: [ANN] RCRchive shutting down — "Robert Dober" <robert.dober@...> 2008/04/03

On Thu, Apr 3, 2008 at 12:01 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#16123] issue tracking (Re: [ANN] RCRchive shutting down) — Yukihiro Matsumoto <matz@...> 2008/04/03

Hi,

[#16124] Re: issue tracking (Re: [ANN] RCRchive shutting down) — "Meinrad Recheis" <meinrad.recheis@...> 2008/04/03

On Thu, Apr 3, 2008 at 1:13 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#16128] RUBY_IMPLEMENTATION — Yukihiro Matsumoto <matz@...>

Hi,

60 messages 2008/04/03
[#16139] Re: RUBY_IMPLEMENTATION — Paul Brannan <pbrannan@...> 2008/04/03

On Thu, Apr 03, 2008 at 11:41:41PM +0900, Yukihiro Matsumoto wrote:

[#16143] Re: RUBY_IMPLEMENTATION — Eric Hodel <drbrain@...7.net> 2008/04/03

On Apr 3, 2008, at 10:59 AM, Paul Brannan wrote:

[#16146] Re: RUBY_IMPLEMENTATION — Yukihiro Matsumoto <matz@...> 2008/04/03

Hi,

[#16147] Re: RUBY_IMPLEMENTATION — Ezra Zygmuntowicz <ezmobius@...> 2008/04/03

[#16149] Re: RUBY_IMPLEMENTATION — Charles Oliver Nutter <charles.nutter@...> 2008/04/03

Ezra Zygmuntowicz wrote:

[#16155] Re: RUBY_IMPLEMENTATION — "Yemi I. D. Bedu" <yemi@...> 2008/04/03

Hello,

[#16158] Re: RUBY_IMPLEMENTATION — Charles Oliver Nutter <charles.nutter@...> 2008/04/03

Yemi I. D. Bedu wrote:

[#16175] Re: RUBY_IMPLEMENTATION — Eleanor McHugh <eleanor@...> 2008/04/04

On 4 Apr 2008, at 00:23, Charles Oliver Nutter wrote:

[#16194] Re: RUBY_IMPLEMENTATION — Chris Cummer <chris@...> 2008/04/04

On 4-Apr-08, at 3:05 AM, Eleanor McHugh wrote:

[#16195] Re: RUBY_IMPLEMENTATION — "Luis Lavena" <luislavena@...> 2008/04/04

On Fri, Apr 4, 2008 at 2:15 PM, Chris Cummer <chris@postal-code.com> wrote:

[#16240] syntax request — "ry dahl" <ry@...>

Often times when one has many long arguments and orders them like this

42 messages 2008/04/06
[#16263] Re: syntax request — "Bill Kelly" <billk@...> 2008/04/07

[#16266] Re: syntax request — "David A. Black" <dblack@...> 2008/04/08

On Tue, 8 Apr 2008, Bill Kelly wrote:

[#16282] Re: syntax request — Paul Brannan <pbrannan@...> 2008/04/08

On Tue, Apr 08, 2008 at 02:23:26PM +0900, David A. Black wrote:

[#16290] Could someone confirm signal handling is broken on OSX? — Dave Thomas <dave@...>

I've raised this before, but no one replied. I'd like to double check

12 messages 2008/04/08

[#16359] design meeting — Yukihiro Matsumoto <matz@...>

Hi,

18 messages 2008/04/12

[#16397] Ruby 1.8.7-preview1 has been released — "Akinori MUSHA" <knu@...>

Folks,

16 messages 2008/04/15

[#16482] Performance on method dispatch for methods defined via define_method — "Robert Dober" <robert.dober@...>

Hi

32 messages 2008/04/22
[#16483] Re: Performance on method dispatch for methods defined via define_method — Paul Brannan <pbrannan@...> 2008/04/22

On Wed, Apr 23, 2008 at 12:39:29AM +0900, Robert Dober wrote:

[#16484] Re: Performance on method dispatch for methods defined via define_method — "Robert Dober" <robert.dober@...> 2008/04/22

On Tue, Apr 22, 2008 at 8:46 PM, Paul Brannan <pbrannan@atdesk.com> wrote:

[#16487] Re: Performance on method dispatch for methods defined via define_method — "David A. Black" <dblack@...> 2008/04/22

Hi --

[#16488] Re: Performance on method dispatch for methods defined via define_method — "Robert Dober" <robert.dober@...> 2008/04/22

On Tue, Apr 22, 2008 at 10:44 PM, David A. Black <dblack@rubypal.com> wrote:

[#16490] Re: Performance on method dispatch for methods defined via define_method — "David A. Black" <dblack@...> 2008/04/22

Hi --

[#16501] Re: Performance on method dispatch for methods defined via define_method — ts <decoux@...> 2008/04/23

Robert Dober wrote:

[#16507] Drop :: as a . synonym — "David A. Black" <dblack@...>

Hi --

50 messages 2008/04/23
[#16511] Re: [RCR] Drop :: as a . synonym — Charles Oliver Nutter <charles.nutter@...> 2008/04/23

David A. Black wrote:

[#16512] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/23

Hi --

[#16525] Re: [RCR] Drop :: as a . synonym — Charles Oliver Nutter <charles.nutter@...> 2008/04/23

David A. Black wrote:

[#16527] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/23

Hi --

[#16534] Re: [RCR] Drop :: as a . synonym — Thomas Enebo <Thomas.Enebo@...> 2008/04/23

David A. Black wrote:

[#16546] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/24

Hi --

[#16552] Re: [RCR] Drop :: as a . synonym — "Jeremy McAnally" <jeremymcanally@...> 2008/04/24

Or changing #send to private...or (insert progressive but code

[#16564] Re: [RCR] Drop :: as a . synonym — Charles Oliver Nutter <charles.nutter@...> 2008/04/24

Jeremy McAnally wrote:

[#16567] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/24

Hi --

[#16570] Re: [RCR] Drop :: as a . synonym — Yukihiro Matsumoto <matz@...> 2008/04/24

Hi,

[#16531] Re: [RCR] Drop :: as a . synonym — "Eric Mahurin" <eric.mahurin@...> 2008/04/23

On Wed, Apr 23, 2008 at 9:21 AM, David A. Black <dblack@rubypal.com> wrote:

Re: [ANN] Ebb Web Server

From: "Tony Arcieri" <tony@...>
Date: 2008-04-02 19:40:34 UTC
List: ruby-core #16115
On Wed, Apr 2, 2008 at 1:11 PM, Marc Lehmann <schmorp@schmorp.de> wrote:

> the basic algorithm is to let whoever thinks is the main thread run
> ev_loop, while Coro links itself into the event system by use of an idle
> watcher, and a prepare watcher.
>
> The prepare watcher is always active and basically does this:
>
> 1. cede=yield to one other coroutine, regardless of priority
>
> 2. then cede=yield to other coroutines of same and higher priority (incede
>   is simply the number of instances running ev_loop (Coro allows multiple
>   event loop calls running at the same time on the same loop, so does ev),
>   and cede returns wether there was another coroutine available to switch
> to.
>
> 3. if there are any "ready" coroutines left by now, then they must be of
>   lower priority than the one running ev_loop. in that case, start an idle
>   watcher to keep the loop from blocking.
>
> the idle watcher does nothing but stop itself, it is only used to make
> ev_loop non-blocking.
>

Unfortunately as far as I can tell Ruby 1.8 doesn't provide granular entry
points into the schedule that would allow for that sort of thing.  Ruby 1.9
uses native threads so it's not an issue... you can make calls that block
indefinitely with rb_thread_blocking_region().

When adding Ruby 1.8 support to Rev, I used the following approach for a
"oneshot" style function:

- Create an ev_timer which fires every 10ms (according to the author of
EventMachine this is Ruby's scheduler quantum)
- Activate Ruby's signal handling for a blocking system call (TRAP_BEG).
- Call ev_loop(..., EVLOOP_ONESHOT).  Rev is already set up to buffer
incoming events in an exponentially growing array.
- Restore normal Ruby signal handling (TRAP_END).
- Schedule the next thread with rb_thread_schedule()
- Loop unless we received events other than the 10ms ev_timer
- Otherwise rb_funcall the event responders, and return

This approach has been working fine for me and does not seem to negatively
impact Ruby 1.8's thread scheduler.  However as it is looping making a
system call every 10ms it does seem to chew up more CPU than I like.  I
haven't played around with making libev block for longer periods of time (I
think Ebb blocks every 100ms?) but it might be possible to go higher without
adversely affecting Ruby's thread scheduling.

I'm CCing ruby-core to see if anyone there has any input...

-- 
Tony Arcieri
medioh.com

In This Thread

Prev Next