[MacRuby-devel] Fibers and Enumerators

Louis-Philippe default at spiralix.org
Wed Aug 11 05:23:08 PDT 2010


Hi Scott,

If you haven't done so already, you might want to have a look at:
http://www.macruby.org/documentation/gcd.html

it speaks of MacRuby integrating Apple's latest multi-threading strategy:
Grand Central Dispatch.

2010/8/10 Scott Thompson <easco at mac.com>

> I recently had a discussion on a separate list about Coroutines and
> Cooperative Multitasking on Mac OS X.  The general result of that discussion
> was that the "best" solutions were to either rely on the (deprecated) Carbon
> Thread Manager, use a more complex scheme involving pthreads and semaphores
> to emulate cooperative multitasking, or look at a third party library which
> uses hand-rolled assembly to replace the (deprecated, non-POSIX)
> makecontext, swapcontext and friends.
>
> In the course of that discussion, I looked to see how MacRuby might be
> implementing Fibers (which is a coroutines mechanism similar to the one I
> was looking for) and found that, at the moment, it doesn't.  The Fiber code
> is commented out (at least in the few places in the source I looked at).
>
> Have you given some thought as to how that feature might be implemented?
>
> I suppose with the Ruby interpreter that the "co-routine" might be handled
> using internal features of the interpreter itself (the "green threads",
> fabled in song and story).  At the same time, it seems like all the work
> that went into improving Ruby's threading system as implemented by MacRuby
> might have made it harder to use the "green threads".
>
> I'm more curious than anything else, but has someone thought of a clever
> way to handle cooperative multitasking in MacRuby?
>
> Scott
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20100811/6ce8b19d/attachment.html>


More information about the MacRuby-devel mailing list