summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Buzbee <buzbee@google.com>2010-02-02 11:04:33 -0800
committerBill Buzbee <buzbee@google.com>2010-02-02 17:03:44 -0800
commit0984be3e439c46f1b2ad9e9a9f9d5f9a06f10e3d (patch)
tree1afcf451c7fa6bf51db413251b972b859c5ea627
parentb47282849bbff57d5ec226845e2cafb1c4acae7e (diff)
downloadlibcore-0984be3e439c46f1b2ad9e9a9f9d5f9a06f10e3d.zip
libcore-0984be3e439c46f1b2ad9e9a9f9d5f9a06f10e3d.tar.gz
libcore-0984be3e439c46f1b2ad9e9a9f9d5f9a06f10e3d.tar.bz2
Jit: Rework monitor enter/exit to simplify thread suspension
The Jit must stop all threads in order to flush the translation cache (and other tables). Threads which are blocked in a monitor wait cause some headache here because they effectively hold a references to the translation cache (though the return address on the native stack). The new model introduced in this CL is that for the fast path of monitor enter, control is allowed to resume in the translation cache. However, if we need to do a heavyweight lock (which may cause us to block) control does not return to the translation cache but instead bails out to the interpreter. This allows us to safely clear the code cache even if some threads are in THREAD_MONITOR state.
0 files changed, 0 insertions, 0 deletions