• Mathieu Chartier's avatar
    Add concurrent reference processing. · 78f7b4c0
    Mathieu Chartier authored
    Concurrent reference processing currently works by going into native
    code from java.lang.ref.Reference.get(). From there, we have a fast
    path if the references aren't being processed which returns the
    referent without needing to access any locks. In the slow path we
    block until reference processing is complete. It may be possible to
    improve the slow path if the referent is blackened.
    
    TODO: Investigate doing the fast path in java code by using racy reads
    of a static volatile boolean. This will work as long as there are no
    suspend points inbetween the boolean read and referent read.
    
    Bug: 14381653
    
    Change-Id: I1546b55be4691fe4ff4aa6d857b234cce7187d87
    78f7b4c0
java_lang_ref_Reference.cc 1.39 KB