base/android/java/src/org/chromium/base/library_loader/Linker.java
void takeSharedRelrosFromBundle(Bundle bundle) {
        if (DEBUG) Log.i(TAG, "called takeSharedRelrosFromBundle(%s)", bundle);
        Bundle relros = bundle.getBundle(SHARED_RELROS);
        if (relros != null) {
            synchronized (mLock) {
                assert mLibInfo == null;
                mLibInfo = LibInfo.fromBundle(relros);
                if (mState == State.DONE) {
                    atomicReplaceRelroLocked(false /* relroAvailableImmediately */);
                } else {
                    assert mState != State.DONE_PROVIDE_RELRO;
                    // Wake up blocked callers of waitForSharedRelrosLocked().
                    mLock.notifyAll();
                }
            }
        }
    }
/**
     * Deserializes the RELRO region information that was marshalled by
     * {@link #putLoadAddressToBundle(Bundle)} and wakes up the threads waiting for it to use (mmap)
     * replace the RELRO section in this process with shared memory.
     * @param bundle The Bundle to extract the information from.
     */
Deserializes the RELRO region information that was marshalled by
#putLoadAddressToBundle(Bundle) and wakes up the threads waiting for it to use (mmap)
replace the RELRO section in this process with shared memory.
@param bundle The Bundle to extract the information from.
Deserializes the RELRO region information that was marshalled by #putLoadAddressToBundle ( Bundle ) and wakes up the threads waiting for it to use ( mmap ) replace the RELRO section in this process with shared memory . @param bundle The Bundle to extract the information from .
void takeSharedRelrosFromBundle(Bundle bundle) {
        if (DEBUG) Log.i(TAG, "called takeSharedRelrosFromBundle(%s)", bundle);
        Bundle relros = bundle.getBundle(SHARED_RELROS);
        if (relros != null) {
            synchronized (mLock) {
                assert mLibInfo == null;
                mLibInfo = LibInfo.fromBundle(relros);
                if (mState == State.DONE) {
                    atomicReplaceRelroLocked(false /* relroAvailableImmediately */);
                } else {
                    assert mState != State.DONE_PROVIDE_RELRO;
                    mLock.notifyAll();
                }
            }
        }
    }
void takeSharedRelrosFromBundle ( Bundle bundle ) { if ( DEBUG ) Log . i ( TAG , "called takeSharedRelrosFromBundle(%s)" , bundle ) ; Bundle relros = bundle . getBundle ( SHARED_RELROS ) ; if ( relros != null ) { synchronized ( mLock ) { assert mLibInfo == null ; mLibInfo = LibInfo . fromBundle ( relros ) ; if ( mState == State . DONE ) { atomicReplaceRelroLocked ( false /* relroAvailableImmediately */ ) ; } else { assert mState != State . DONE_PROVIDE_RELRO ; mLock . notifyAll ( ) ; } } } }
Deserializes the RELRO region information that was marshalled by
 {@link #putLoadAddressToBundle(Bundle)} and wakes up the threads waiting for it to use (mmap)
 replace the RELRO section in this process with shared memory.
Deserializes the RELRO region information that was marshalled by { @link #putLoadAddressToBundle ( Bundle ) } and wakes up the threads waiting for it to use ( mmap ) replace the RELRO section in this process with shared memory .
// Wake up blocked callers of waitForSharedRelrosLocked().