From: Eric Hodel Date: 2004-05-22T10:17:19-07:00 Subject: Re: Continuation call across threads --CdrF4e02JqNVZeln Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable ysantoso-rubytalk@jenny-gnome.dyndns.org (ysantoso-rubytalk@jenny-gnome.dyn= dns.org) wrote: > Hi, >=20 > I was wondering why a Continuation is not callable across threads. >=20 > >From the definition at wikipedia: >=20 > "a continuation saves the execution state of a program at a given > point so that it's possible to resume execution from that state at a > later point in time." >=20 > If one takes a thread for what it actually is, which is a > stream-of-execution, then I fail to see a reason, beside the one described > below, why one thread cannot call a Continuation object generated from > another thread.=20 This paragraph halfway describes how Ruby implements Continuations. > However, I feel that this is more of a discipline issue on the part of > the programmer. If your code depends on thread-specific storage, don't > resume from another thread. The other option is to implement a sandbox thread that handles callcc and invoking the continuation. > So, what is the reason for the restriction? Is there some conceptual > issue with continuations being callable from across threads, or is > this just implementation-specific issue? Its just an implementation-specific issue. Continuations in Ruby are implemented as a "frozen" thread which is restored over the top of the current thread. --=20 Eric Hodel - drbrain@segment7.net - http://segment7.net All messages signed with fingerprint: FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 --CdrF4e02JqNVZeln Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (FreeBSD) iD8DBQFAr4sfMypVHHlsnwQRAta2AJ92bA/YKTBieknJDyn+Igx+gyHQ5gCcC3Yt d8cc7fHU5wtqlv6xZprzDp4= =6QR1 -----END PGP SIGNATURE----- --CdrF4e02JqNVZeln--