« Return to Thread: Continuation mechanism in RIFE?
Re: Continuation mechanism in RIFE?
Hi Liu,
> Hi Geert, thanx for the quick reply.
>
> I just read the brakes paper that was linked from your post, kinda
> like one that I've read,
> http://homepage.mac.com/t.sekiguchi/paper/ehbook01.pdf, though it uses
> exception instead of normal return :)
RIFE uses exceptions too.
> I looked into the EngineClassLoader class which i believe is the main
> class loader?
Indeed.
> It seems to me that only classes Element and
> ElementAware are modified to handle continuation. While this looks
> great for performance reasons it puzzles me a lot. What happens if
> there're non-element classes on the stack? How can the continuation
> captured correctly and restored later when these classes are not
> "coorperating"? Or does the operation of rife somehow guarantees that
> only Elements will be on the stack? (sorry I'm not very familiar with
RIFE currently only supports continuations in the entrance methods of
elements. We wrote experimental code to restore the method call
stack, but that has been erased a while ago to first focus on making
the current case work perfectly.
RIFE will also only support byte-code instrumentation in elements.
This makes sense as a web application framework since elements are
the building blocks and will create the business logic of the entire
application. RIFE also knows the singular entry point, which is very
convenient to restore the call and variable stack. There is nothing
that would prevent you from applying the same process to all your
classes, but it will create a huge overhead.
> the workings of rife)
>
> btw my name is "Liu" not "Lui" :P
Actually, I meant to write Liu, but Lui came out ... sorry about that.
> Thanks again Geert for the great work of Rife :)
>
> Liu Chang
>
>> --
>> Geert Bevin Uwyn bvba
>> "Use what you need" Avenue de Scailmont 34
>> http://www.uwyn.com 7170 Manage, Belgium
>> gbevin[remove] at uwyn dot com Tel +32 64 84 80 03
>>
>> PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9
>> Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net
>>
>>
>> _______________________________________________
>> Rife-devel mailing list
>> Rife-devel@...
>> http://lists.uwyn.com/mailman/listinfo/rife-devel
>>
> _______________________________________________
> Rife-devel mailing list
> Rife-devel@...
> http://lists.uwyn.com/mailman/listinfo/rife-devel
>
--
Geert Bevin Uwyn bvba
"Use what you need" Avenue de Scailmont 34
http://www.uwyn.com 7170 Manage, Belgium
gbevin[remove] at uwyn dot com Tel +32 64 84 80 03
PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9
Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net
> Hi Geert, thanx for the quick reply.
>
> I just read the brakes paper that was linked from your post, kinda
> like one that I've read,
> http://homepage.mac.com/t.sekiguchi/paper/ehbook01.pdf, though it uses
> exception instead of normal return :)
RIFE uses exceptions too.
> I looked into the EngineClassLoader class which i believe is the main
> class loader?
Indeed.
> It seems to me that only classes Element and
> ElementAware are modified to handle continuation. While this looks
> great for performance reasons it puzzles me a lot. What happens if
> there're non-element classes on the stack? How can the continuation
> captured correctly and restored later when these classes are not
> "coorperating"? Or does the operation of rife somehow guarantees that
> only Elements will be on the stack? (sorry I'm not very familiar with
RIFE currently only supports continuations in the entrance methods of
elements. We wrote experimental code to restore the method call
stack, but that has been erased a while ago to first focus on making
the current case work perfectly.
RIFE will also only support byte-code instrumentation in elements.
This makes sense as a web application framework since elements are
the building blocks and will create the business logic of the entire
application. RIFE also knows the singular entry point, which is very
convenient to restore the call and variable stack. There is nothing
that would prevent you from applying the same process to all your
classes, but it will create a huge overhead.
> the workings of rife)
>
> btw my name is "Liu" not "Lui" :P
Actually, I meant to write Liu, but Lui came out ... sorry about that.
> Thanks again Geert for the great work of Rife :)
>
> Liu Chang
>
>> --
>> Geert Bevin Uwyn bvba
>> "Use what you need" Avenue de Scailmont 34
>> http://www.uwyn.com 7170 Manage, Belgium
>> gbevin[remove] at uwyn dot com Tel +32 64 84 80 03
>>
>> PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9
>> Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net
>>
>>
>> _______________________________________________
>> Rife-devel mailing list
>> Rife-devel@...
>> http://lists.uwyn.com/mailman/listinfo/rife-devel
>>
> _______________________________________________
> Rife-devel mailing list
> Rife-devel@...
> http://lists.uwyn.com/mailman/listinfo/rife-devel
>
--
Geert Bevin Uwyn bvba
"Use what you need" Avenue de Scailmont 34
http://www.uwyn.com 7170 Manage, Belgium
gbevin[remove] at uwyn dot com Tel +32 64 84 80 03
PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9
Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net
« Return to Thread: Continuation mechanism in RIFE?
| Free Forum Powered by Nabble | Forum Help |
