Yu Zhang wrote:
> But there is another question, you said a new thread manager(TM) in DRLVM
> siginificantly reduced synchronization cost,
I believe that Mikhail referred to "lock reservation" optimization,
implemented in following files
C-implementation:
vm/thread/src/thread_native_thin_monitor.c
Optimized fast path for IA32 in assembler (actually, in emitter calls):
vm/thread/src/thread_helpers.cpp
> could you give me further
> infomation on it, such as the file name or the related documents
Source files of Thread Manager are located in
vm/thread/src
The data structures of the thread manager are described in
vm/thread/src/thread_private.h
and are used as opaque pointers in all other sources of the VM.
Build-wise, thread manager results in two libraries:
hythr.dll
thread_native_*.c
jthread.lib
all other sources
And jthread.lib is in turn linked into harmonyvm.dll.
> (except the http://harmony.apache.org/subcomponents/drlvm/TM.html) ?
Besides this document, you can generate doxygen documentation from thread
manager sources. More details in HARMONY-2351.
Any specific questions would be much appreciated, as I intend to improve
documentation based on feedback.
> Are there several TM implementations in DRLVM?
No, there exist just one Thread Manager implementation in DRLVM.
However, the native interface of thread manager (hythr.dll/libhythr.so)
which is used by Classlib (particularly by hyprt.dll) has two separate
implementations.
There were many discussions on how to deal with this problem,
but no significant progress yet.