re PR libgcj/8995 (race cases in interpreter)
2008-09-17 Andrew Haley <aph@redhat.com> PR libgcj/8995: * defineclass.cc (_Jv_ClassReader::handleCodeAttribute): Initialize thread_count. * include/java-interp.h (_Jv_InterpMethod::thread_count): New field. (_Jv_InterpMethod::rewrite_insn_mutex): New mutex. (_Jv_InterpFrame:: _Jv_InterpFrame): Pass frame_type. * interpret.cc (ThreadCountAdjuster): New class. (_Jv_InterpMethod::thread_count): New field. (_Jv_InitInterpreter): Initialize rewrite_insn_mutex. Increment and decrement thread_count field in methods. * interpret-run.cc (REWRITE_INSN): Check thread_count <= 1. (REWRITE_INSN): Likewise. Declare a ThreadCountAdjuster. * java/lang/reflect/natVMProxy.cc (run_proxy): Initialize frame type as frame_proxy. From-SVN: r140593
This commit is contained in:
parent
5c0466b537
commit
f0580031a7
6 changed files with 155 additions and 31 deletions
|
@ -350,7 +350,8 @@ run_proxy (ffi_cif *cif,
|
|||
// than about Proxy.class itself. FRAME_DESC has a destructor so it
|
||||
// cleans up automatically when this proxy invocation returns.
|
||||
Thread *thread = Thread::currentThread();
|
||||
_Jv_InterpFrame frame_desc (self->self, thread, proxyClass);
|
||||
_Jv_InterpFrame frame_desc (self->self, thread, proxyClass,
|
||||
NULL, frame_proxy);
|
||||
|
||||
// The method to invoke is saved in $Proxy0.m[method_index].
|
||||
// FIXME: We could somewhat improve efficiency by storing a pointer
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue