Coroutines in JDK8++?

Lukas Stadler lukas.stadler at jku.at
Tue Apr 3 01:56:47 PDT 2012


Hi!

Am 2012-04-02 23:40, schrieb Mark Roos:
> A question I have on your coro implementation is just how sensitive it
> is to changes in HotSpot.  I am planning to give it a go and am wondering
> if I need to be a Hotspot expert as well ( in case it breaks ).
It is independent of most subsystems, for example there are no changes 
relating to the compilers, gc, classloading, ...
What it does touch is the stack walking code. There were some changes 
for the jsr292 stuff (ricochet frames), but I don't expect that to 
happen again any time soon.
I think a lot of the work will center around the interface that is 
presented to the Java programmer.
Changes to the interface should only require minor tweaks in the C++ 
code, if at all.

> On the same topic I recall that you build a small object code piece to 
> give
> access to the stack.  I believe this in done during launch.  If true 
> is there
> an explanation of what this code does somewhere?
Yes, there is a small piece of code that is created on startup using the 
macro assembler. The reason that this isn't written in Java or C++ is 
that it needs to be fast, has to set registers (rsp, rbp, ...) directly 
and cannot contain any safepoints. Figure 4.4 in my master's thesis (see 
below) gives an overview of what this code does.
> p.s. I see you made it to Amazon
> Serializable Coroutines for Java Virtual Machines: An efficient 
> implementation based on the HotSpot(TM) Java Virtual Machine
Yes, but don't bother buying it, it's pretty much the same as my 
Master's thesis :-)
http://ssw.jku.at/Research/Papers/Stadler11Master/

- Lukas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20120403/4dc51217/attachment.html 


More information about the mlvm-dev mailing list