LocklessQueue: move values into Entries instead of copying.
The motivation for this change is b/408710034 where the allocator
crashes while copying a value into a LocklessQueue Entry, but there is
also a performace win:
BM before:
```
----------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------
pushPop/1 41.9 ns 41.9 ns 16696378
pushPop/8 38.6 ns 38.6 ns 18191833
pushPop/64 42.9 ns 42.9 ns 16353414
pushPop/512 86.1 ns 86.0 ns 8216985
pushPop/4096 705 ns 705 ns 997754
pushPop/32768 6162 ns 6157 ns 110737
pushPop/262144 57837 ns 57780 ns 12010
pushPop/1048576 227840 ns 227688 ns 3137
```
BM this change:
```
----------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------
pushPop/1 26.8 ns 26.8 ns 26163075
pushPop/8 25.1 ns 25.1 ns 27890003
pushPop/64 25.9 ns 25.9 ns 27154234
pushPop/512 25.7 ns 25.7 ns 27187823
pushPop/4096 25.7 ns 25.7 ns 27187548
pushPop/32768 25.9 ns 25.8 ns 27118373
pushPop/262144 25.9 ns 25.8 ns 27081835
pushPop/1048576 25.9 ns 25.9 ns 27164591
```
Test: `BM=surfaceflinger_microbenchmarks_host_supported; m $BM && $ANDROID_HOST_OUT/benchmarktest64/$BM/$BM` ; presubmit
Flag: EXEMPT refactor
Bug: 408710034
Change-Id: Iad975257c7db2a7fff1441b43847c36493cadc01
1 file changed