libbinder_ndk: eradicate global lock
Let the nightmares cease!
Without contention, peace.
Note, in the case that an ABpBinder is backed by a BBinder (this happens
when you talk in-process to something between the NDK backend and either
the C++, Rust, or Java backends of AIDL), this introduces an additional
allocation b/c the BBinder's mExtra needs to be allocated for
BBinder::withLock to work. Since this is generally frowned upon, and the
thrashing in this case is already pretty egregious, I don't mind it.
Now, binder proxies can be allocated simultaneously in a process.
Bug: 192023359
Test: CtsNdkBinderTestCases
Change-Id: Ib1c28c9488f7a03579ea9d18347a8fc08cc3f48a
2 files changed