* I added a ContinuationException class that can be thrown to clients using this code instead of stuff like java.lang.reflect.InvocationTargetException that is dependent on the underlying bytecode toolkit.
That class was missing in your patch. Besides I am wondering what you mean by "dependand on the bytecode toolkit"?!
There was a note in TODO about investigating using ASM instead of BCEL. Without even looking in detail at ASM, my guess is that it will throw different exceptions than BCEL when manipulating the bytecode, etc. My idea was that we could throw a ContinuationException instead of the underlying FooException that either BCEL or ASM uses to insulate any calling classes from having to change in the event of a switch from BCEL to ASM.
Please have a look into the one I've committed. Continueing from the very same continuation is totally ok!
Keep the tree of continuations in mind!
Ok, thanks for correcting me.
* In the TODO file, you mention something about removing the Continuable and ContinuationCapable marker interfaces. Can you please elaborate on the reasons behind that?
The Continuable marks classes that should be rewritten. The ContinuationCapable mark classes that have been rewritten. IMO this can all go away.
We could define that on a package scope. E.g. via regexp.
Going for a decend callflow analyses would even figure out the needed rewrites by itself. Might be some work though...
I think I understand the reason why both of these interfaces exist. However, if the intent is to be able to use Continuation.suspend() within any class without having to implement Continuable on that class, then maybe just do away with Continuable and keep ContinuationCapable as the marker for that class after it has been rewritten.
What benefit does the regex approach provide? Callflow analyses seems like it could be messy. And I think just tagging the rewritten class with this interface is pretty transparent, no?
phil.
-- Whirlycott Philip Jacob [EMAIL PROTECTED] http://www.whirlycott.com/phil/
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
