4d87df607a0b86cdf4b2c04f61d72a60d8975ce0 |
|
08-Jan-2016 |
Mathieu Chartier <mathieuc@google.com> |
Improve handling of daemon threads after runtime shutdown The main issue comes from the fact that user daemon threads are allowed to continue running after the runtime has shutdown. They may still have a JNI env pointer. To prevent crashing if they call into the env, we replace the function pointers with functions that sleep forever. The other issue is that user daemon threads that are blocked in an ART condition variable may get woken up by another user daemon inside of Monitor::Notify or by a spurious wakeup (i.e. SIGQUIT). To deal with this issue, we check the JNI env for shutdown runtime when we are woken up from a condition variable wait. This check fixes test 132 with --host --gdb --interpreter. Previously this test crashed since dlclose was somehow causing a spurious futex wakeup. TODO: Investigate adding a unit test. Bug: 18577101 Change-Id: I479b38968ee9fbc4ee4b252ee2528787279972cc
|
4d98c84e6e2a47caf279909edae2b55f9f032288 |
|
10-Dec-2015 |
Andreas Gampe <agampe@google.com> |
ART: Make trampoline compiler pointer-size-safe The trampoline compiler uses offsets of runtime structures which may change with the pointer size. Add offset tests to jni_internal_test. Bug: 26071368 (cherry picked from commit da9b763abc712fd6d1e24170a194abfbe795b8cd) Change-Id: I01d1a3727f46b3015ac677afb5427337c3093402
|
da9b763abc712fd6d1e24170a194abfbe795b8cd |
|
10-Dec-2015 |
Andreas Gampe <agampe@google.com> |
ART: Make trampoline compiler pointer-size-safe The trampoline compiler uses offsets of runtime structures which may change with the pointer size. Add offset tests to jni_internal_test. Bug: 26071368 Change-Id: I01d1a3727f46b3015ac677afb5427337c3093402
|
5f4a09a54eed55de89e194780214a2acfd2cb431 |
|
28-Sep-2015 |
Andreas Gampe <agampe@google.com> |
ART: Add CheckJNI lock checking JNI MonitorEnter and MonitorExit have similar rules to structured locking. Count locks in CheckJNI mode. Bug: 23502994 Change-Id: Ie3f53d3aa669a6bd0c7153c50c168116b43764d9
|
90443477f9a0061581c420775ce3b7eeae7468bc |
|
17-Jul-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move to newer clang annotations Also enable -Wthread-safety-negative. Changes: Switch to capabilities and negative capabilities. Future work: Use capabilities to implement uninterruptible annotations to work with AssertNoThreadSuspension. Bug: 20072211 Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
|
3f5881fda3606b27e30bf903052c73b03910f90b |
|
08-Apr-2015 |
Andreas Gampe <agampe@google.com> |
ART: IRT refactor IRT creation might fail. Add a path that allows to bypass the aborts and instead signal validity. Hide this path with a private constructor, rewrite users to use a static Create method. Bug: 20110201 Change-Id: I440499c3372cd7557eb970b70ce2c4543da520e4
|
68d8b42ddec39ec0174162d90d4abaa004d1983e |
|
17-Jul-2014 |
Ian Rogers <irogers@google.com> |
Wire up check JNI force copy mode. Increase check JNI checks. Break apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h. Fix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case of VM routines. Make class loader override and shared library class loader JNI global references rather than mirror pointers. Clean-ups to native bridge. Change-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55
|