Coroutines in JDK8++?
lukas.stadler at jku.at
Tue Apr 3 01:56:47 PDT 2012
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
> 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 :-)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the mlvm-dev