react-native-windows 0.84.0 → 0.84.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Directory.Build.props +2 -17
- package/Folly/ThreadNameStub.cpp +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -7
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -3
- package/PropertySheets/CIBuildOptimizations.props +2 -2
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/NuGet.LockFile.props +10 -1
- package/PropertySheets/React.Cpp.props +3 -3
- package/ReactCommon/ReactCommon.vcxproj +0 -5
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +61 -6
- package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -37
- package/Scripts/UpdateNightlyDependencies.ps1 +47 -0
- package/Scripts/creaternwapp.cmd +5 -8
- package/Scripts/creaternwlib.cmd +10 -23
- package/Shared/Shared.vcxitems +2 -0
- package/{Folly → external}/.clang-format +0 -1
- package/external/External.vcxitems +10 -0
- package/external/fast-float/.syncignore +10 -0
- package/external/fast-float/LICENSE-APACHE +190 -0
- package/external/fast-float/LICENSE-BOOST +23 -0
- package/external/fast-float/LICENSE-MIT +27 -0
- package/external/fast-float/README.md +545 -0
- package/external/fast-float/cgmanifest.json +15 -0
- package/external/fast-float/fast-float.vcxitems +14 -0
- package/external/fast-float/include/fast_float/ascii_number.h +588 -0
- package/external/fast-float/include/fast_float/bigint.h +638 -0
- package/external/fast-float/include/fast_float/constexpr_feature_detect.h +46 -0
- package/external/fast-float/include/fast_float/decimal_to_binary.h +212 -0
- package/external/fast-float/include/fast_float/digit_comparison.h +457 -0
- package/external/fast-float/include/fast_float/fast_float.h +59 -0
- package/external/fast-float/include/fast_float/fast_table.h +708 -0
- package/external/fast-float/include/fast_float/float_common.h +1240 -0
- package/external/fast-float/include/fast_float/parse_number.h +399 -0
- package/external/fast-float/sync-config.json +8 -0
- package/external/fmt/.syncignore +10 -0
- package/external/fmt/CONTRIBUTING.md +20 -0
- package/external/fmt/LICENSE +27 -0
- package/external/fmt/README.md +484 -0
- package/external/fmt/doc/ChangeLog-old.md +3290 -0
- package/external/fmt/doc/api.md +650 -0
- package/external/fmt/doc/fmt.css +61 -0
- package/external/fmt/doc/fmt.js +4 -0
- package/external/fmt/doc/get-started.md +222 -0
- package/external/fmt/doc/index.md +151 -0
- package/external/fmt/doc/perf.svg +1 -0
- package/external/fmt/doc/python-license.txt +290 -0
- package/external/fmt/doc/syntax.md +887 -0
- package/external/fmt/fmt.vcxitems +28 -0
- package/external/fmt/include/fmt/args.h +228 -0
- package/external/fmt/include/fmt/base.h +3077 -0
- package/external/fmt/include/fmt/chrono.h +2432 -0
- package/external/fmt/include/fmt/color.h +612 -0
- package/external/fmt/include/fmt/compile.h +529 -0
- package/external/fmt/include/fmt/core.h +5 -0
- package/external/fmt/include/fmt/format-inl.h +1928 -0
- package/external/fmt/include/fmt/format.h +4427 -0
- package/external/fmt/include/fmt/os.h +439 -0
- package/external/fmt/include/fmt/ostream.h +211 -0
- package/external/fmt/include/fmt/printf.h +656 -0
- package/external/fmt/include/fmt/ranges.h +882 -0
- package/external/fmt/include/fmt/std.h +699 -0
- package/external/fmt/include/fmt/xchar.h +322 -0
- package/external/fmt/src/fmt.cc +135 -0
- package/external/fmt/src/format.cc +43 -0
- package/external/fmt/src/os.cc +403 -0
- package/external/fmt/sync-config.json +8 -0
- package/external/folly/.syncignore +60 -0
- package/external/folly/LICENSE +200 -0
- package/external/folly/README.md +263 -0
- package/{fmt → external/folly/folly}/.clang-format +0 -1
- package/external/folly/folly/AtomicHashArray-inl.h +546 -0
- package/external/folly/folly/AtomicHashArray.h +431 -0
- package/external/folly/folly/AtomicHashMap-inl.h +653 -0
- package/external/folly/folly/AtomicHashMap.h +484 -0
- package/external/folly/folly/AtomicIntrusiveLinkedList.h +206 -0
- package/external/folly/folly/AtomicLinkedList.h +110 -0
- package/external/folly/folly/AtomicUnorderedMap.h +522 -0
- package/external/folly/folly/BUCK +1631 -0
- package/external/folly/folly/BUILD_MODE.bzl +72 -0
- package/external/folly/folly/Benchmark.cpp +986 -0
- package/external/folly/folly/Benchmark.h +680 -0
- package/external/folly/folly/BenchmarkUtil.h +47 -0
- package/external/folly/folly/Bits.h +17 -0
- package/external/folly/folly/CMakeLists.txt +110 -0
- package/external/folly/folly/CPortability.h +338 -0
- package/external/folly/folly/CancellationToken-inl.h +449 -0
- package/external/folly/folly/CancellationToken.cpp +250 -0
- package/external/folly/folly/CancellationToken.h +365 -0
- package/external/folly/folly/Chrono.h +132 -0
- package/external/folly/folly/ClockGettimeWrappers.cpp +93 -0
- package/external/folly/folly/ClockGettimeWrappers.h +29 -0
- package/external/folly/folly/ConcurrentBitSet.h +157 -0
- package/external/folly/folly/ConcurrentLazy.h +74 -0
- package/external/folly/folly/ConcurrentSkipList-inl.h +341 -0
- package/external/folly/folly/ConcurrentSkipList.h +824 -0
- package/external/folly/folly/ConstructorCallbackList.h +158 -0
- package/external/folly/folly/Conv.h +2026 -0
- package/external/folly/folly/CppAttributes.h +170 -0
- package/external/folly/folly/CpuId.h +297 -0
- package/external/folly/folly/DefaultKeepAliveExecutor.h +172 -0
- package/external/folly/folly/Demangle.cpp +255 -0
- package/external/folly/folly/Demangle.h +73 -0
- package/external/folly/folly/DiscriminatedPtr.h +236 -0
- package/external/folly/folly/DynamicConverter.h +17 -0
- package/external/folly/folly/Exception.h +150 -0
- package/external/folly/folly/ExceptionString.cpp +51 -0
- package/external/folly/folly/ExceptionString.h +33 -0
- package/external/folly/folly/ExceptionWrapper-inl.h +264 -0
- package/external/folly/folly/ExceptionWrapper.cpp +37 -0
- package/external/folly/folly/ExceptionWrapper.h +377 -0
- package/external/folly/folly/Executor.cpp +111 -0
- package/external/folly/folly/Executor.h +351 -0
- package/external/folly/folly/Expected.h +1725 -0
- package/external/folly/folly/FBString.h +2888 -0
- package/external/folly/folly/FBVector.h +17 -0
- package/external/folly/folly/File.cpp +180 -0
- package/external/folly/folly/File.h +177 -0
- package/external/folly/folly/FileUtil.cpp +378 -0
- package/external/folly/folly/FileUtil.h +332 -0
- package/external/folly/folly/Fingerprint.cpp +135 -0
- package/external/folly/folly/Fingerprint.h +289 -0
- package/external/folly/folly/FixedString.h +2965 -0
- package/external/folly/folly/FollyMemcpy.cpp +30 -0
- package/external/folly/folly/FollyMemcpy.h +23 -0
- package/external/folly/folly/FollyMemset.cpp +29 -0
- package/external/folly/folly/FollyMemset.h +25 -0
- package/external/folly/folly/Format-inl.h +1152 -0
- package/external/folly/folly/Format.cpp +429 -0
- package/external/folly/folly/Format.h +463 -0
- package/external/folly/folly/FormatArg.h +285 -0
- package/external/folly/folly/FormatTraits.h +65 -0
- package/external/folly/folly/Function.h +1159 -0
- package/external/folly/folly/GLog.h +85 -0
- package/external/folly/folly/GroupVarint.cpp +153 -0
- package/external/folly/folly/GroupVarint.h +630 -0
- package/external/folly/folly/Hash.h +20 -0
- package/external/folly/folly/IPAddress.cpp +490 -0
- package/external/folly/folly/IPAddress.h +667 -0
- package/external/folly/folly/IPAddressException.h +82 -0
- package/external/folly/folly/IPAddressV4.cpp +305 -0
- package/external/folly/folly/IPAddressV4.h +495 -0
- package/external/folly/folly/IPAddressV6.cpp +541 -0
- package/external/folly/folly/IPAddressV6.h +627 -0
- package/external/folly/folly/Indestructible.h +164 -0
- package/external/folly/folly/IndexedMemPool.h +550 -0
- package/external/folly/folly/IntrusiveList.h +17 -0
- package/external/folly/folly/Lazy.h +142 -0
- package/external/folly/folly/Likely.h +76 -0
- package/external/folly/folly/MPMCPipeline.h +280 -0
- package/external/folly/folly/MPMCQueue.h +1556 -0
- package/external/folly/folly/MacAddress.cpp +188 -0
- package/external/folly/folly/MacAddress.h +260 -0
- package/external/folly/folly/MapUtil.h +17 -0
- package/external/folly/folly/Math.h +258 -0
- package/external/folly/folly/MaybeManagedPtr.h +120 -0
- package/external/folly/folly/Memory.h +900 -0
- package/external/folly/folly/MicroLock.cpp +76 -0
- package/external/folly/folly/MicroLock.h +354 -0
- package/external/folly/folly/MicroSpinLock.h +17 -0
- package/external/folly/folly/MoveWrapper.h +76 -0
- package/external/folly/folly/ObserverContainer.h +1026 -0
- package/external/folly/folly/Optional.h +743 -0
- package/external/folly/folly/Overload.h +325 -0
- package/external/folly/folly/PackedSyncPtr.h +147 -0
- package/external/folly/folly/Padded.h +464 -0
- package/external/folly/folly/Poly-inl.h +230 -0
- package/external/folly/folly/Poly.h +1095 -0
- package/external/folly/folly/PolyException.h +43 -0
- package/external/folly/folly/Portability.h +644 -0
- package/external/folly/folly/Preprocessor.h +236 -0
- package/external/folly/folly/ProducerConsumerQueue.h +182 -0
- package/external/folly/folly/RWSpinLock.h +17 -0
- package/external/folly/folly/Random-inl.h +86 -0
- package/external/folly/folly/Random.cpp +184 -0
- package/external/folly/folly/Random.h +434 -0
- package/external/folly/folly/Range.h +1772 -0
- package/external/folly/folly/Replaceable.h +636 -0
- package/external/folly/folly/ScopeGuard.cpp +29 -0
- package/external/folly/folly/ScopeGuard.h +420 -0
- package/external/folly/folly/SharedMutex.cpp +81 -0
- package/external/folly/folly/SharedMutex.h +1751 -0
- package/external/folly/folly/Singleton-inl.h +332 -0
- package/external/folly/folly/Singleton.cpp +512 -0
- package/external/folly/folly/Singleton.h +891 -0
- package/external/folly/folly/SingletonThreadLocal.cpp +53 -0
- package/external/folly/folly/SingletonThreadLocal.h +263 -0
- package/external/folly/folly/SocketAddress.cpp +786 -0
- package/external/folly/folly/SocketAddress.h +768 -0
- package/external/folly/folly/SpinLock.h +55 -0
- package/external/folly/folly/String-inl.h +668 -0
- package/external/folly/folly/String.cpp +777 -0
- package/external/folly/folly/String.h +767 -0
- package/external/folly/folly/Subprocess.cpp +1142 -0
- package/external/folly/folly/Subprocess.h +1055 -0
- package/external/folly/folly/Synchronized.h +1833 -0
- package/external/folly/folly/SynchronizedPtr.h +106 -0
- package/external/folly/folly/ThreadCachedInt.h +175 -0
- package/external/folly/folly/ThreadLocal.h +478 -0
- package/external/folly/folly/TimeoutQueue.cpp +78 -0
- package/external/folly/folly/TimeoutQueue.h +123 -0
- package/external/folly/folly/TokenBucket.h +673 -0
- package/external/folly/folly/Traits.h +1442 -0
- package/external/folly/folly/Try-inl.h +372 -0
- package/external/folly/folly/Try.cpp +23 -0
- package/external/folly/folly/Try.h +728 -0
- package/external/folly/folly/UTF8String.h +56 -0
- package/external/folly/folly/Unicode.cpp +201 -0
- package/external/folly/folly/Unicode.h +94 -0
- package/external/folly/folly/Unit.h +65 -0
- package/external/folly/folly/Uri-inl.h +101 -0
- package/external/folly/folly/Uri.cpp +190 -0
- package/external/folly/folly/Uri.h +142 -0
- package/external/folly/folly/Utility.h +932 -0
- package/external/folly/folly/VERSION +1 -0
- package/external/folly/folly/Varint.h +230 -0
- package/external/folly/folly/VirtualExecutor.h +17 -0
- package/external/folly/folly/algorithm/simd/BUCK +47 -0
- package/external/folly/folly/algorithm/simd/Contains.cpp +42 -0
- package/external/folly/folly/algorithm/simd/Contains.h +116 -0
- package/external/folly/folly/algorithm/simd/FindFixed.h +301 -0
- package/external/folly/folly/algorithm/simd/Ignore.h +52 -0
- package/external/folly/folly/algorithm/simd/Movemask.h +207 -0
- package/external/folly/folly/algorithm/simd/detail/BUCK +70 -0
- package/external/folly/folly/algorithm/simd/detail/ContainsImpl.h +91 -0
- package/external/folly/folly/algorithm/simd/detail/SimdAnyOf.h +83 -0
- package/external/folly/folly/algorithm/simd/detail/SimdForEach.h +209 -0
- package/external/folly/folly/algorithm/simd/detail/SimdPlatform.h +445 -0
- package/external/folly/folly/algorithm/simd/detail/Traits.h +125 -0
- package/external/folly/folly/algorithm/simd/detail/UnrollUtils.h +126 -0
- package/external/folly/folly/base64.h +264 -0
- package/external/folly/folly/chrono/BUCK +29 -0
- package/external/folly/folly/chrono/Clock.h +65 -0
- package/external/folly/folly/chrono/Conv.h +712 -0
- package/external/folly/folly/chrono/test/BUCK +26 -0
- package/external/folly/folly/chrono/test/ClockTest.cpp +68 -0
- package/external/folly/folly/chrono/test/ConvTest.cpp +652 -0
- package/external/folly/folly/concurrency/AtomicSharedPtr.h +387 -0
- package/external/folly/folly/concurrency/BUCK +170 -0
- package/external/folly/folly/concurrency/CacheLocality.h +460 -0
- package/external/folly/folly/concurrency/ConcurrentHashMap.h +822 -0
- package/external/folly/folly/concurrency/CoreCachedSharedPtr.h +232 -0
- package/external/folly/folly/concurrency/DeadlockDetector.cpp +27 -0
- package/external/folly/folly/concurrency/DeadlockDetector.h +44 -0
- package/external/folly/folly/concurrency/DynamicBoundedQueue.h +751 -0
- package/external/folly/folly/concurrency/PriorityUnboundedQueueSet.h +207 -0
- package/external/folly/folly/concurrency/ProcessLocalUniqueId.cpp +46 -0
- package/external/folly/folly/concurrency/ProcessLocalUniqueId.h +38 -0
- package/external/folly/folly/concurrency/SingletonRelaxedCounter.h +325 -0
- package/external/folly/folly/concurrency/ThreadCachedSynchronized.h +227 -0
- package/external/folly/folly/concurrency/UnboundedQueue.h +891 -0
- package/external/folly/folly/concurrency/container/BUCK +77 -0
- package/external/folly/folly/concurrency/container/FlatCombiningPriorityQueue.h +426 -0
- package/external/folly/folly/concurrency/container/LockFreeRingBuffer.h +306 -0
- package/external/folly/folly/concurrency/container/RelaxedConcurrentPriorityQueue.h +1212 -0
- package/external/folly/folly/concurrency/container/SingleWriterFixedHashMap.h +322 -0
- package/external/folly/folly/concurrency/container/atomic_grow_array.h +564 -0
- package/external/folly/folly/concurrency/container/test/BUCK +75 -0
- package/external/folly/folly/concurrency/container/test/FlatCombiningPriorityQueueTest.cpp +570 -0
- package/external/folly/folly/concurrency/container/test/LockFreeRingBufferTest.cpp +276 -0
- package/external/folly/folly/concurrency/container/test/RelaxedConcurrentPriorityQueueTest.cpp +1570 -0
- package/external/folly/folly/concurrency/container/test/SingleWriterFixedHashMapTest.cpp +401 -0
- package/external/folly/folly/concurrency/container/test/atomic_grow_array_test.cpp +187 -0
- package/external/folly/folly/concurrency/detail/AtomicSharedPtr-detail.h +212 -0
- package/external/folly/folly/concurrency/detail/ConcurrentHashMap-detail.h +1911 -0
- package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp +43 -0
- package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.h +190 -0
- package/external/folly/folly/concurrency/memory/BUCK +53 -0
- package/external/folly/folly/concurrency/memory/PrimaryPtr.h +338 -0
- package/external/folly/folly/concurrency/memory/ReadMostlySharedPtr.h +511 -0
- package/external/folly/folly/concurrency/memory/TLRefCount.h +228 -0
- package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrBenchmark.cpp +56 -0
- package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrTest.cpp +454 -0
- package/external/folly/folly/concurrency/memory/test/BUCK +95 -0
- package/external/folly/folly/concurrency/memory/test/PrimaryPtrTest.cpp +303 -0
- package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrBenchmark.cpp +138 -0
- package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrStressTest.cpp +75 -0
- package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrTest.cpp +378 -0
- package/external/folly/folly/concurrency/memory/test/RefCountBenchmark.cpp +90 -0
- package/external/folly/folly/concurrency/memory/test/RefCountTest.cpp +168 -0
- package/external/folly/folly/concurrency/test/AtomicSharedPtrCounted.h +156 -0
- package/external/folly/folly/concurrency/test/AtomicSharedPtrPerformance.cpp +255 -0
- package/external/folly/folly/concurrency/test/AtomicSharedPtrTest.cpp +257 -0
- package/external/folly/folly/concurrency/test/BUCK +229 -0
- package/external/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp +392 -0
- package/external/folly/folly/concurrency/test/CacheLocalityTest.cpp +1229 -0
- package/external/folly/folly/concurrency/test/ConcurrentHashMapBench.cpp +260 -0
- package/external/folly/folly/concurrency/test/ConcurrentHashMapTest.cpp +1242 -0
- package/external/folly/folly/concurrency/test/CoreCachedSharedPtrTest.cpp +408 -0
- package/external/folly/folly/concurrency/test/DynamicBoundedQueueTest.cpp +984 -0
- package/external/folly/folly/concurrency/test/PriorityUnboundedQueueSetTest.cpp +73 -0
- package/external/folly/folly/concurrency/test/ProcessLocalUniqueIdTest.cpp +66 -0
- package/external/folly/folly/concurrency/test/SingletonRelaxedCounterBench.cpp +101 -0
- package/external/folly/folly/concurrency/test/SingletonRelaxedCounterTest.cpp +185 -0
- package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedBench.cpp +76 -0
- package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedTest.cpp +93 -0
- package/external/folly/folly/concurrency/test/UnboundedQueueTest.cpp +1302 -0
- package/external/folly/folly/container/Access.h +57 -0
- package/external/folly/folly/container/Array.h +87 -0
- package/external/folly/folly/container/BUCK +353 -0
- package/external/folly/folly/container/BitIterator.h +203 -0
- package/external/folly/folly/container/Enumerate.h +162 -0
- package/external/folly/folly/container/EvictingCacheMap.h +730 -0
- package/external/folly/folly/container/F14.md +300 -0
- package/external/folly/folly/container/F14Map-fwd.h +113 -0
- package/external/folly/folly/container/F14Map.h +2108 -0
- package/external/folly/folly/container/F14Set-fwd.h +95 -0
- package/external/folly/folly/container/F14Set.h +1603 -0
- package/external/folly/folly/container/FBVector.h +1711 -0
- package/external/folly/folly/container/Foreach-inl.h +316 -0
- package/external/folly/folly/container/Foreach.h +209 -0
- package/external/folly/folly/container/HeterogeneousAccess-fwd.h +33 -0
- package/external/folly/folly/container/HeterogeneousAccess.h +171 -0
- package/external/folly/folly/container/IntrusiveHeap.h +268 -0
- package/external/folly/folly/container/IntrusiveList.h +131 -0
- package/external/folly/folly/container/Iterator.h +843 -0
- package/external/folly/folly/container/MapUtil.h +376 -0
- package/external/folly/folly/container/Merge.h +90 -0
- package/external/folly/folly/container/RegexMatchCache.cpp +521 -0
- package/external/folly/folly/container/RegexMatchCache.h +699 -0
- package/external/folly/folly/container/Reserve.h +109 -0
- package/external/folly/folly/container/SparseByteSet.h +123 -0
- package/external/folly/folly/container/View.h +81 -0
- package/external/folly/folly/container/WeightedEvictingCacheMap.h +651 -0
- package/external/folly/folly/container/detail/BUCK +115 -0
- package/external/folly/folly/container/detail/BitIteratorDetail.h +87 -0
- package/external/folly/folly/container/detail/F14Defaults.h +34 -0
- package/external/folly/folly/container/detail/F14IntrinsicsAvailability.h +67 -0
- package/external/folly/folly/container/detail/F14MapFallback.h +717 -0
- package/external/folly/folly/container/detail/F14Mask.h +235 -0
- package/external/folly/folly/container/detail/F14Policy.h +1523 -0
- package/external/folly/folly/container/detail/F14SetFallback.h +528 -0
- package/external/folly/folly/container/detail/F14Table.cpp +71 -0
- package/external/folly/folly/container/detail/F14Table.h +2680 -0
- package/external/folly/folly/container/detail/Util.h +303 -0
- package/external/folly/folly/container/detail/tape_detail.h +135 -0
- package/external/folly/folly/container/detail/test/BUCK +14 -0
- package/external/folly/folly/container/detail/test/F14DetailTest.cpp +47 -0
- package/external/folly/folly/container/heap_vector_types.h +1683 -0
- package/external/folly/folly/container/range_traits.h +81 -0
- package/external/folly/folly/container/small_vector.h +1476 -0
- package/external/folly/folly/container/sorted_vector_types.h +1652 -0
- package/external/folly/folly/container/span.h +408 -0
- package/external/folly/folly/container/tape.h +608 -0
- package/external/folly/folly/container/test/.clang-tidy +12 -0
- package/external/folly/folly/container/test/AccessTest.cpp +138 -0
- package/external/folly/folly/container/test/ArrayTest.cpp +84 -0
- package/external/folly/folly/container/test/BUCK +568 -0
- package/external/folly/folly/container/test/BitIteratorBench.cpp +112 -0
- package/external/folly/folly/container/test/BitIteratorTest.cpp +109 -0
- package/external/folly/folly/container/test/EnumerateTest.cpp +294 -0
- package/external/folly/folly/container/test/EvictingCacheMapBench.cpp +80 -0
- package/external/folly/folly/container/test/EvictingCacheMapTest.cpp +842 -0
- package/external/folly/folly/container/test/F14AsanSupportTest.cpp +143 -0
- package/external/folly/folly/container/test/F14FwdTest.cpp +37 -0
- package/external/folly/folly/container/test/F14InterprocessTest.cpp +404 -0
- package/external/folly/folly/container/test/F14MapTest.cpp +2543 -0
- package/external/folly/folly/container/test/F14PolicyTest.cpp +49 -0
- package/external/folly/folly/container/test/F14SetTest.cpp +1738 -0
- package/external/folly/folly/container/test/F14SmallOverheads.cpp +215 -0
- package/external/folly/folly/container/test/F14TestUtil.h +117 -0
- package/external/folly/folly/container/test/FBVectorBenchmark.cpp +380 -0
- package/external/folly/folly/container/test/FBVectorBenchmarks.cpp.h +100 -0
- package/external/folly/folly/container/test/FBVectorTest.cpp +326 -0
- package/external/folly/folly/container/test/FBVectorTests.cpp.h +304 -0
- package/external/folly/folly/container/test/ForeachBenchmark.cpp +388 -0
- package/external/folly/folly/container/test/ForeachTest.cpp +338 -0
- package/external/folly/folly/container/test/HashMapsBench.cpp +458 -0
- package/external/folly/folly/container/test/HeterogeneousAccessTest.cpp +242 -0
- package/external/folly/folly/container/test/IntrusiveHeapTest.cpp +262 -0
- package/external/folly/folly/container/test/IteratorTest.cpp +989 -0
- package/external/folly/folly/container/test/MapUtilTest.cpp +365 -0
- package/external/folly/folly/container/test/MergeTest.cpp +66 -0
- package/external/folly/folly/container/test/RegexMatchCacheTest.cpp +634 -0
- package/external/folly/folly/container/test/ReserveTest.cpp +173 -0
- package/external/folly/folly/container/test/SparseByteSetBenchmark.cpp +153 -0
- package/external/folly/folly/container/test/SparseByteSetTest.cpp +117 -0
- package/external/folly/folly/container/test/TrackingTypes.h +584 -0
- package/external/folly/folly/container/test/UtilTest.cpp +609 -0
- package/external/folly/folly/container/test/WeightedEvictingCacheMapTest.cpp +800 -0
- package/external/folly/folly/container/test/heap_vector_types_test.cpp +1774 -0
- package/external/folly/folly/container/test/range_traits_test.cpp +59 -0
- package/external/folly/folly/container/test/small_vector_test.cpp +1571 -0
- package/external/folly/folly/container/test/sorted_vector_test.cpp +1589 -0
- package/external/folly/folly/container/test/span_test.cpp +520 -0
- package/external/folly/folly/container/test/tape_bench.cpp +200 -0
- package/external/folly/folly/container/test/tape_test.cpp +590 -0
- package/external/folly/folly/defs.bzl +238 -0
- package/external/folly/folly/detail/AsyncTrace.cpp +36 -0
- package/external/folly/folly/detail/AsyncTrace.h +44 -0
- package/external/folly/folly/detail/AtomicHashUtils.h +42 -0
- package/external/folly/folly/detail/AtomicUnorderedMapUtils.h +80 -0
- package/external/folly/folly/detail/BUCK +406 -0
- package/external/folly/folly/detail/DiscriminatedPtrDetail.h +172 -0
- package/external/folly/folly/detail/FileUtilDetail.cpp +63 -0
- package/external/folly/folly/detail/FileUtilDetail.h +85 -0
- package/external/folly/folly/detail/FileUtilVectorDetail.h +81 -0
- package/external/folly/folly/detail/FingerprintPolynomial.h +132 -0
- package/external/folly/folly/detail/Futex-inl.h +123 -0
- package/external/folly/folly/detail/Futex.cpp +273 -0
- package/external/folly/folly/detail/Futex.h +109 -0
- package/external/folly/folly/detail/GroupVarintDetail.h +101 -0
- package/external/folly/folly/detail/IPAddress.cpp +37 -0
- package/external/folly/folly/detail/IPAddress.h +57 -0
- package/external/folly/folly/detail/IPAddressSource.h +278 -0
- package/external/folly/folly/detail/Iterators.h +156 -0
- package/external/folly/folly/detail/MPMCPipelineDetail.h +122 -0
- package/external/folly/folly/detail/MemoryIdler.cpp +233 -0
- package/external/folly/folly/detail/MemoryIdler.h +216 -0
- package/external/folly/folly/detail/PerfScoped.cpp +112 -0
- package/external/folly/folly/detail/PerfScoped.h +70 -0
- package/external/folly/folly/detail/PolyDetail.h +921 -0
- package/external/folly/folly/detail/RangeCommon.cpp +55 -0
- package/external/folly/folly/detail/RangeCommon.h +93 -0
- package/external/folly/folly/detail/RangeSse42.cpp +198 -0
- package/external/folly/folly/detail/RangeSse42.h +30 -0
- package/external/folly/folly/detail/SimpleSimdStringUtils.cpp +31 -0
- package/external/folly/folly/detail/SimpleSimdStringUtils.h +27 -0
- package/external/folly/folly/detail/SimpleSimdStringUtilsImpl.h +63 -0
- package/external/folly/folly/detail/Singleton.h +34 -0
- package/external/folly/folly/detail/SlowFingerprint.h +90 -0
- package/external/folly/folly/detail/SocketFastOpen.cpp +175 -0
- package/external/folly/folly/detail/SocketFastOpen.h +89 -0
- package/external/folly/folly/detail/SplitStringSimd.cpp +84 -0
- package/external/folly/folly/detail/SplitStringSimd.h +151 -0
- package/external/folly/folly/detail/SplitStringSimdImpl.h +149 -0
- package/external/folly/folly/detail/Sse.cpp +35 -0
- package/external/folly/folly/detail/Sse.h +45 -0
- package/external/folly/folly/detail/StaticSingletonManager.cpp +119 -0
- package/external/folly/folly/detail/StaticSingletonManager.h +298 -0
- package/external/folly/folly/detail/ThreadLocalDetail.cpp +492 -0
- package/external/folly/folly/detail/ThreadLocalDetail.h +800 -0
- package/external/folly/folly/detail/TrapOnAvx512.cpp +41 -0
- package/external/folly/folly/detail/TrapOnAvx512.h +21 -0
- package/external/folly/folly/detail/TurnSequencer.h +295 -0
- package/external/folly/folly/detail/TypeList.h +551 -0
- package/external/folly/folly/detail/UniqueInstance.cpp +136 -0
- package/external/folly/folly/detail/UniqueInstance.h +68 -0
- package/external/folly/folly/detail/base64_detail/BUCK +102 -0
- package/external/folly/folly/detail/base64_detail/Base64Api.cpp +40 -0
- package/external/folly/folly/detail/base64_detail/Base64Api.h +101 -0
- package/external/folly/folly/detail/base64_detail/Base64Common.h +80 -0
- package/external/folly/folly/detail/base64_detail/Base64Constants.h +79 -0
- package/external/folly/folly/detail/base64_detail/Base64HiddenConstants.h +129 -0
- package/external/folly/folly/detail/base64_detail/Base64SWAR.cpp +161 -0
- package/external/folly/folly/detail/base64_detail/Base64SWAR.h +32 -0
- package/external/folly/folly/detail/base64_detail/Base64Scalar.h +262 -0
- package/external/folly/folly/detail/base64_detail/Base64Simd.h +102 -0
- package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.cpp +42 -0
- package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.h +33 -0
- package/external/folly/folly/detail/base64_detail/Base64_SSE4_2_Platform.h +167 -0
- package/external/folly/folly/detail/base64_detail/README.md +392 -0
- package/external/folly/folly/detail/base64_detail/tests/BUCK +36 -0
- package/external/folly/folly/detail/base64_detail/tests/Base64AgainstScalarTest.cpp +141 -0
- package/external/folly/folly/detail/base64_detail/tests/Base64PlatformTest.cpp +273 -0
- package/external/folly/folly/detail/base64_detail/tests/Base64SpecialCasesTest.cpp +555 -0
- package/external/folly/folly/detail/test/AsyncTraceTest.cpp +43 -0
- package/external/folly/folly/detail/test/BUCK +118 -0
- package/external/folly/folly/detail/test/FileUtilDetailTest.cpp +56 -0
- package/external/folly/folly/detail/test/PerfScopedTest.cpp +107 -0
- package/external/folly/folly/detail/test/SimpleSimdStringUtilsTest.cpp +92 -0
- package/external/folly/folly/detail/test/SplitStringSimdTest.cpp +242 -0
- package/external/folly/folly/detail/test/StaticSingletonManagerTest.cpp +121 -0
- package/external/folly/folly/detail/test/ThreadLocalBenchmark.cpp +116 -0
- package/external/folly/folly/detail/test/ThreadLocalDetailTest.cpp +194 -0
- package/external/folly/folly/detail/test/TrapOnAvx512TestNegative.cpp +29 -0
- package/external/folly/folly/detail/test/UniqueInstanceTest.cpp +60 -0
- package/external/folly/folly/detail/thread_local_globals.cpp +69 -0
- package/external/folly/folly/detail/thread_local_globals.h +36 -0
- package/external/folly/folly/docs/AtomicHashMap.md +134 -0
- package/external/folly/folly/docs/Benchmark.md +310 -0
- package/external/folly/folly/docs/Conv.md +291 -0
- package/external/folly/folly/docs/Dynamic.md +220 -0
- package/external/folly/folly/docs/DynamicConverter.md +71 -0
- package/external/folly/folly/docs/Executors.md +63 -0
- package/external/folly/folly/docs/FBString.md +46 -0
- package/external/folly/folly/docs/FBVector.md +200 -0
- package/external/folly/folly/docs/Fbvector--graphical_solutions.png +0 -0
- package/external/folly/folly/docs/Format.md +177 -0
- package/external/folly/folly/docs/Function.md +92 -0
- package/external/folly/folly/docs/Futures.md +263 -0
- package/external/folly/folly/docs/GroupVarint.md +46 -0
- package/external/folly/folly/docs/Histogram.md +104 -0
- package/external/folly/folly/docs/MapUtils.md +80 -0
- package/external/folly/folly/docs/Overview.md +263 -0
- package/external/folly/folly/docs/PackedSyncPtr.md +77 -0
- package/external/folly/folly/docs/Poly.md +500 -0
- package/external/folly/folly/docs/ProducerConsumerQueue.md +82 -0
- package/external/folly/folly/docs/Rcu.md +218 -0
- package/external/folly/folly/docs/SmallLocks.md +24 -0
- package/external/folly/folly/docs/Synchronized.md +793 -0
- package/external/folly/folly/docs/ThreadCachedInt.md +98 -0
- package/external/folly/folly/docs/ThreadLocal.md +105 -0
- package/external/folly/folly/docs/Traits.md +161 -0
- package/external/folly/folly/docs/small_vector.md +64 -0
- package/external/folly/folly/docs/style.css +23 -0
- package/external/folly/folly/dynamic-inl.h +17 -0
- package/external/folly/folly/dynamic.h +17 -0
- package/external/folly/folly/folly_extended_library.bzl +28 -0
- package/external/folly/folly/functional/ApplyTuple.h +204 -0
- package/external/folly/folly/functional/BUCK +57 -0
- package/external/folly/folly/functional/Invoke.h +880 -0
- package/external/folly/folly/functional/Partial.h +130 -0
- package/external/folly/folly/functional/protocol.h +203 -0
- package/external/folly/folly/functional/test/ApplyTupleTest.cpp +549 -0
- package/external/folly/folly/functional/test/BUCK +57 -0
- package/external/folly/folly/functional/test/InvokeTest.cpp +483 -0
- package/external/folly/folly/functional/test/PartialTest.cpp +141 -0
- package/external/folly/folly/functional/test/protocol_test.cpp +177 -0
- package/external/folly/folly/functional/test/traits_test.cpp +551 -0
- package/external/folly/folly/functional/traits.h +675 -0
- package/external/folly/folly/hash/BUCK +86 -0
- package/external/folly/folly/hash/Checksum.cpp +275 -0
- package/external/folly/folly/hash/Checksum.h +94 -0
- package/external/folly/folly/hash/FarmHash.h +46 -0
- package/external/folly/folly/hash/Hash.h +1045 -0
- package/external/folly/folly/hash/MurmurHash.h +86 -0
- package/external/folly/folly/hash/SpookyHashV1.cpp +391 -0
- package/external/folly/folly/hash/SpookyHashV1.h +307 -0
- package/external/folly/folly/hash/SpookyHashV2.cpp +392 -0
- package/external/folly/folly/hash/SpookyHashV2.h +339 -0
- package/external/folly/folly/hash/detail/BUCK +26 -0
- package/external/folly/folly/hash/detail/ChecksumDetail.cpp +296 -0
- package/external/folly/folly/hash/detail/ChecksumDetail.h +137 -0
- package/external/folly/folly/hash/detail/Crc32CombineDetail.cpp +191 -0
- package/external/folly/folly/hash/detail/Crc32cDetail.cpp +303 -0
- package/external/folly/folly/hash/test/BUCK +132 -0
- package/external/folly/folly/hash/test/ChecksumBenchmark.cpp +91 -0
- package/external/folly/folly/hash/test/ChecksumTest.cpp +587 -0
- package/external/folly/folly/hash/test/FarmHashTest.cpp +41 -0
- package/external/folly/folly/hash/test/HashBenchmark.cpp +238 -0
- package/external/folly/folly/hash/test/HashTest.cpp +997 -0
- package/external/folly/folly/hash/test/MurmurHashTest.cpp +76 -0
- package/external/folly/folly/hash/test/SpookyHashV1Test.cpp +559 -0
- package/external/folly/folly/hash/test/SpookyHashV2Test.cpp +549 -0
- package/external/folly/folly/hash/test/traits_test.cpp +69 -0
- package/external/folly/folly/hash/traits.h +115 -0
- package/external/folly/folly/json/BUCK +155 -0
- package/external/folly/folly/json/DynamicConverter.h +464 -0
- package/external/folly/folly/json/DynamicParser-inl.h +316 -0
- package/external/folly/folly/json/DynamicParser.cpp +198 -0
- package/external/folly/folly/json/DynamicParser.h +394 -0
- package/external/folly/folly/json/JSONSchema.cpp +1030 -0
- package/external/folly/folly/json/JSONSchema.h +73 -0
- package/external/folly/folly/json/JsonMockUtil.h +73 -0
- package/external/folly/folly/json/JsonTestUtil.cpp +167 -0
- package/external/folly/folly/json/JsonTestUtil.h +88 -0
- package/external/folly/folly/json/bser/BUCK +24 -0
- package/external/folly/folly/json/bser/Bser.h +107 -0
- package/external/folly/folly/json/bser/Dump.cpp +253 -0
- package/external/folly/folly/json/bser/Load.cpp +246 -0
- package/external/folly/folly/json/bser/test/BUCK +14 -0
- package/external/folly/folly/json/bser/test/BserTest.cpp +149 -0
- package/external/folly/folly/json/dynamic.cpp +552 -0
- package/external/folly/folly/json/dynamic.h +1346 -0
- package/external/folly/folly/json/json.h +238 -0
- package/external/folly/folly/json/json_patch.cpp +325 -0
- package/external/folly/folly/json/json_patch.h +126 -0
- package/external/folly/folly/json/json_pointer.cpp +114 -0
- package/external/folly/folly/json/json_pointer.h +87 -0
- package/external/folly/folly/json/test/BUCK +147 -0
- package/external/folly/folly/json/test/DynamicBenchmark.cpp +146 -0
- package/external/folly/folly/json/test/DynamicConverterTest.cpp +518 -0
- package/external/folly/folly/json/test/DynamicOtherTest.cpp +344 -0
- package/external/folly/folly/json/test/DynamicParserTest.cpp +443 -0
- package/external/folly/folly/json/test/DynamicTest.cpp +1647 -0
- package/external/folly/folly/json/test/JSONSchemaTest.cpp +450 -0
- package/external/folly/folly/json/test/JsonBenchmark.cpp +264 -0
- package/external/folly/folly/json/test/JsonOtherTest.cpp +51 -0
- package/external/folly/folly/json/test/JsonTest.cpp +1153 -0
- package/external/folly/folly/json/test/JsonTestUtilTest.cpp +97 -0
- package/external/folly/folly/json/test/json_patch_test.cpp +361 -0
- package/external/folly/folly/json/test/json_pointer_test.cpp +58 -0
- package/external/folly/folly/json/tool/BUCK +13 -0
- package/external/folly/folly/json/tool/JSONSchemaTester.cpp +58 -0
- package/external/folly/folly/json.h +17 -0
- package/external/folly/folly/json_patch.h +17 -0
- package/external/folly/folly/json_pointer.h +17 -0
- package/external/folly/folly/lang/Access.h +29 -0
- package/external/folly/folly/lang/Align.h +240 -0
- package/external/folly/folly/lang/Aligned.h +92 -0
- package/external/folly/folly/lang/Assume.h +82 -0
- package/external/folly/folly/lang/BUCK +287 -0
- package/external/folly/folly/lang/Badge.h +108 -0
- package/external/folly/folly/lang/Bits.h +570 -0
- package/external/folly/folly/lang/BitsClass.h +312 -0
- package/external/folly/folly/lang/Builtin.h +74 -0
- package/external/folly/folly/lang/CArray.h +34 -0
- package/external/folly/folly/lang/CString.cpp +86 -0
- package/external/folly/folly/lang/CString.h +55 -0
- package/external/folly/folly/lang/Cast.h +51 -0
- package/external/folly/folly/lang/CheckedMath.h +253 -0
- package/external/folly/folly/lang/CustomizationPoint.h +58 -0
- package/external/folly/folly/lang/Exception.cpp +822 -0
- package/external/folly/folly/lang/Exception.h +716 -0
- package/external/folly/folly/lang/Extern.h +55 -0
- package/external/folly/folly/lang/Hint-inl.h +144 -0
- package/external/folly/folly/lang/Hint.h +238 -0
- package/external/folly/folly/lang/Keep.h +98 -0
- package/external/folly/folly/lang/New.h +124 -0
- package/external/folly/folly/lang/Ordering.h +140 -0
- package/external/folly/folly/lang/Pretty.h +159 -0
- package/external/folly/folly/lang/PropagateConst.h +413 -0
- package/external/folly/folly/lang/RValueReferenceWrapper.h +152 -0
- package/external/folly/folly/lang/SafeAssert.cpp +589 -0
- package/external/folly/folly/lang/StaticConst.h +33 -0
- package/external/folly/folly/lang/Thunk.h +100 -0
- package/external/folly/folly/lang/TypeInfo.h +58 -0
- package/external/folly/folly/lang/UncaughtExceptions.cpp +17 -0
- package/external/folly/folly/lang/UncaughtExceptions.h +19 -0
- package/external/folly/folly/lang/test/AlignTest.cpp +87 -0
- package/external/folly/folly/lang/test/AlignedTest.cpp +130 -0
- package/external/folly/folly/lang/test/BUCK +258 -0
- package/external/folly/folly/lang/test/BadgeTest.cpp +89 -0
- package/external/folly/folly/lang/test/BitsBenchmark.cpp +164 -0
- package/external/folly/folly/lang/test/BitsClassBenchmark.cpp +122 -0
- package/external/folly/folly/lang/test/BitsClassTest.cpp +379 -0
- package/external/folly/folly/lang/test/BitsTest.cpp +577 -0
- package/external/folly/folly/lang/test/CStringTest.cpp +60 -0
- package/external/folly/folly/lang/test/CastTest.cpp +47 -0
- package/external/folly/folly/lang/test/CheckedMathTest.cpp +394 -0
- package/external/folly/folly/lang/test/ExceptionBench.cpp +427 -0
- package/external/folly/folly/lang/test/ExceptionTest.cpp +413 -0
- package/external/folly/folly/lang/test/ExternTest.cpp +39 -0
- package/external/folly/folly/lang/test/HintTest.cpp +100 -0
- package/external/folly/folly/lang/test/NewTest.cpp +38 -0
- package/external/folly/folly/lang/test/OrderingTest.cpp +105 -0
- package/external/folly/folly/lang/test/PrettyTest.cpp +44 -0
- package/external/folly/folly/lang/test/PropagateConstTest.cpp +356 -0
- package/external/folly/folly/lang/test/RValueReferenceWrapperTest.cpp +85 -0
- package/external/folly/folly/lang/test/SafeAssertTest.cpp +75 -0
- package/external/folly/folly/lang/test/ThunkTest.cpp +105 -0
- package/external/folly/folly/lang/test/ToAsciiBench.cpp +466 -0
- package/external/folly/folly/lang/test/ToAsciiTest.cpp +266 -0
- package/external/folly/folly/lang/test/TypeInfoTest.cpp +56 -0
- package/external/folly/folly/memcpy.S +292 -0
- package/external/folly/folly/memcpy_select_aarch64.cpp +145 -0
- package/external/folly/folly/memory/Arena-inl.h +83 -0
- package/external/folly/folly/memory/Arena.h +325 -0
- package/external/folly/folly/memory/BUCK +191 -0
- package/external/folly/folly/memory/JemallocHugePageAllocator.cpp +449 -0
- package/external/folly/folly/memory/JemallocHugePageAllocator.h +105 -0
- package/external/folly/folly/memory/JemallocHugePageAllocatorTest.cpp +341 -0
- package/external/folly/folly/memory/JemallocNodumpAllocator.cpp +176 -0
- package/external/folly/folly/memory/JemallocNodumpAllocator.h +119 -0
- package/external/folly/folly/memory/JemallocNodumpAllocatorTest.cpp +61 -0
- package/external/folly/folly/memory/MallctlHelper.cpp +37 -0
- package/external/folly/folly/memory/MallctlHelper.h +167 -0
- package/external/folly/folly/memory/Malloc.h +551 -0
- package/external/folly/folly/memory/MemoryResource.h +57 -0
- package/external/folly/folly/memory/ReentrantAllocator.cpp +162 -0
- package/external/folly/folly/memory/ReentrantAllocator.h +261 -0
- package/external/folly/folly/memory/SanitizeAddress.cpp +75 -0
- package/external/folly/folly/memory/SanitizeAddress.h +117 -0
- package/external/folly/folly/memory/SanitizeLeak.cpp +119 -0
- package/external/folly/folly/memory/SanitizeLeak.h +108 -0
- package/external/folly/folly/memory/ThreadCachedArena.cpp +53 -0
- package/external/folly/folly/memory/ThreadCachedArena.h +90 -0
- package/external/folly/folly/memory/UninitializedMemoryHacks.h +426 -0
- package/external/folly/folly/memory/detail/BUCK +10 -0
- package/external/folly/folly/memory/detail/MallocImpl.cpp +52 -0
- package/external/folly/folly/memory/detail/MallocImpl.h +97 -0
- package/external/folly/folly/memory/not_null-inl.h +522 -0
- package/external/folly/folly/memory/not_null.h +449 -0
- package/external/folly/folly/memory/test/ArenaTest.cpp +354 -0
- package/external/folly/folly/memory/test/BUCK +146 -0
- package/external/folly/folly/memory/test/MallctlHelperTest.cpp +169 -0
- package/external/folly/folly/memory/test/MallocBenchmark.cpp +91 -0
- package/external/folly/folly/memory/test/MallocTest.cpp +78 -0
- package/external/folly/folly/memory/test/MemoryResourceTest.cpp +31 -0
- package/external/folly/folly/memory/test/ReentrantAllocatorTest.cpp +144 -0
- package/external/folly/folly/memory/test/SanitizeAddressTest.cpp +67 -0
- package/external/folly/folly/memory/test/SanitizeLeakTest.cpp +139 -0
- package/external/folly/folly/memory/test/ThreadCachedArenaTest.cpp +276 -0
- package/external/folly/folly/memory/test/UninitializedMemoryHacksODR.cpp +21 -0
- package/external/folly/folly/memory/test/UninitializedMemoryHacksTest.cpp +327 -0
- package/external/folly/folly/memory/test/not_null_test.cpp +608 -0
- package/external/folly/folly/memset.S +245 -0
- package/external/folly/folly/memset_select_aarch64.cpp +72 -0
- package/external/folly/folly/portability/Asm.h +50 -0
- package/external/folly/folly/portability/Atomic.h +31 -0
- package/external/folly/folly/portability/BUCK +456 -0
- package/external/folly/folly/portability/Builtins.cpp +31 -0
- package/external/folly/folly/portability/Builtins.h +161 -0
- package/external/folly/folly/portability/Config.h +43 -0
- package/external/folly/folly/portability/Constexpr.h +145 -0
- package/external/folly/folly/portability/Dirent.cpp +140 -0
- package/external/folly/folly/portability/Dirent.h +41 -0
- package/external/folly/folly/portability/Event.h +44 -0
- package/external/folly/folly/portability/Fcntl.cpp +120 -0
- package/external/folly/folly/portability/Fcntl.h +67 -0
- package/external/folly/folly/portability/Filesystem.cpp +67 -0
- package/external/folly/folly/portability/Filesystem.h +114 -0
- package/external/folly/folly/portability/FmtCompile.h +40 -0
- package/external/folly/folly/portability/GFlags.h +139 -0
- package/external/folly/folly/portability/GMock.h +35 -0
- package/external/folly/folly/portability/GTest.h +35 -0
- package/external/folly/folly/portability/IOVec.h +34 -0
- package/external/folly/folly/portability/Libgen.cpp +59 -0
- package/external/folly/folly/portability/Libgen.h +29 -0
- package/external/folly/folly/portability/Libunwind.h +21 -0
- package/external/folly/folly/portability/Malloc.cpp +31 -0
- package/external/folly/folly/portability/Malloc.h +53 -0
- package/external/folly/folly/portability/Math.h +90 -0
- package/external/folly/folly/portability/Memory.h +26 -0
- package/external/folly/folly/portability/OpenSSL.cpp +17 -0
- package/external/folly/folly/portability/OpenSSL.h +102 -0
- package/external/folly/folly/portability/PThread.cpp +697 -0
- package/external/folly/folly/portability/PThread.h +148 -0
- package/external/folly/folly/portability/README.md +21 -0
- package/external/folly/folly/portability/Sched.cpp +41 -0
- package/external/folly/folly/portability/Sched.h +45 -0
- package/external/folly/folly/portability/Sockets.cpp +245 -0
- package/external/folly/folly/portability/Sockets.h +155 -0
- package/external/folly/folly/portability/SourceLocation.h +49 -0
- package/external/folly/folly/portability/Stdio.cpp +77 -0
- package/external/folly/folly/portability/Stdio.h +32 -0
- package/external/folly/folly/portability/Stdlib.cpp +172 -0
- package/external/folly/folly/portability/Stdlib.h +64 -0
- package/external/folly/folly/portability/String.cpp +53 -0
- package/external/folly/folly/portability/String.h +39 -0
- package/external/folly/folly/portability/SysFile.cpp +46 -0
- package/external/folly/folly/portability/SysFile.h +27 -0
- package/external/folly/folly/portability/SysMembarrier.cpp +104 -0
- package/external/folly/folly/portability/SysMembarrier.h +26 -0
- package/external/folly/folly/portability/SysMman.cpp +242 -0
- package/external/folly/folly/portability/SysMman.h +68 -0
- package/external/folly/folly/portability/SysResource.cpp +108 -0
- package/external/folly/folly/portability/SysResource.h +71 -0
- package/external/folly/folly/portability/SysStat.cpp +66 -0
- package/external/folly/folly/portability/SysStat.h +52 -0
- package/external/folly/folly/portability/SysSyscall.h +73 -0
- package/external/folly/folly/portability/SysTime.cpp +62 -0
- package/external/folly/folly/portability/SysTime.h +50 -0
- package/external/folly/folly/portability/SysTypes.h +44 -0
- package/external/folly/folly/portability/SysUio.cpp +179 -0
- package/external/folly/folly/portability/SysUio.h +51 -0
- package/external/folly/folly/portability/Syslog.h +39 -0
- package/external/folly/folly/portability/Time.cpp +357 -0
- package/external/folly/folly/portability/Time.h +74 -0
- package/external/folly/folly/portability/Unistd.h +111 -0
- package/external/folly/folly/portability/Windows.h +108 -0
- package/external/folly/folly/portability/openat2.c +30 -0
- package/external/folly/folly/portability/openat2.h +39 -0
- package/external/folly/folly/portability/test/BUCK +59 -0
- package/external/folly/folly/portability/test/ConstexprTest.cpp +102 -0
- package/external/folly/folly/portability/test/FilesystemTest.cpp +35 -0
- package/external/folly/folly/portability/test/LibgenTest.cpp +35 -0
- package/external/folly/folly/portability/test/OpenSSLPortabilityTest.cpp +108 -0
- package/external/folly/folly/portability/test/PThreadTest.cpp +80 -0
- package/external/folly/folly/portability/test/TimeTest.cpp +90 -0
- package/external/folly/folly/small_vector.h +17 -0
- package/external/folly/folly/somerge_defs.bzl +399 -0
- package/external/folly/folly/sorted_vector_types.h +17 -0
- package/external/folly/folly/stop_watch.h +317 -0
- package/external/folly/folly/synchronization/AsymmetricThreadFence.cpp +91 -0
- package/external/folly/folly/synchronization/AsymmetricThreadFence.h +60 -0
- package/external/folly/folly/synchronization/AtomicNotification-inl.h +146 -0
- package/external/folly/folly/synchronization/AtomicNotification.cpp +34 -0
- package/external/folly/folly/synchronization/AtomicNotification.h +117 -0
- package/external/folly/folly/synchronization/AtomicRef.h +181 -0
- package/external/folly/folly/synchronization/AtomicStruct.h +150 -0
- package/external/folly/folly/synchronization/AtomicUtil-inl.h +482 -0
- package/external/folly/folly/synchronization/AtomicUtil.h +179 -0
- package/external/folly/folly/synchronization/BUCK +418 -0
- package/external/folly/folly/synchronization/Baton.h +419 -0
- package/external/folly/folly/synchronization/CallOnce.h +263 -0
- package/external/folly/folly/synchronization/DelayedInit.h +179 -0
- package/external/folly/folly/synchronization/DistributedMutex-inl.h +1744 -0
- package/external/folly/folly/synchronization/DistributedMutex.cpp +27 -0
- package/external/folly/folly/synchronization/DistributedMutex.h +342 -0
- package/external/folly/folly/synchronization/EventCount.h +200 -0
- package/external/folly/folly/synchronization/FlatCombining.h +629 -0
- package/external/folly/folly/synchronization/Hazptr-fwd.h +217 -0
- package/external/folly/folly/synchronization/Hazptr.cpp +36 -0
- package/external/folly/folly/synchronization/Hazptr.h +209 -0
- package/external/folly/folly/synchronization/HazptrDomain.cpp +68 -0
- package/external/folly/folly/synchronization/HazptrDomain.h +832 -0
- package/external/folly/folly/synchronization/HazptrHolder.h +431 -0
- package/external/folly/folly/synchronization/HazptrObj.h +533 -0
- package/external/folly/folly/synchronization/HazptrObjLinked.h +315 -0
- package/external/folly/folly/synchronization/HazptrRec.h +68 -0
- package/external/folly/folly/synchronization/HazptrThrLocal.h +180 -0
- package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.cpp +46 -0
- package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.h +25 -0
- package/external/folly/folly/synchronization/Latch.h +160 -0
- package/external/folly/folly/synchronization/LifoSem.h +767 -0
- package/external/folly/folly/synchronization/Lock.h +887 -0
- package/external/folly/folly/synchronization/MicroSpinLock.h +154 -0
- package/external/folly/folly/synchronization/NativeSemaphore.h +187 -0
- package/external/folly/folly/synchronization/ParkingLot.cpp +37 -0
- package/external/folly/folly/synchronization/ParkingLot.h +330 -0
- package/external/folly/folly/synchronization/PicoSpinLock.h +167 -0
- package/external/folly/folly/synchronization/RWSpinLock.h +549 -0
- package/external/folly/folly/synchronization/Rcu.cpp +26 -0
- package/external/folly/folly/synchronization/Rcu.h +553 -0
- package/external/folly/folly/synchronization/RelaxedAtomic.h +336 -0
- package/external/folly/folly/synchronization/SanitizeThread.cpp +141 -0
- package/external/folly/folly/synchronization/SanitizeThread.h +166 -0
- package/external/folly/folly/synchronization/SaturatingSemaphore.h +324 -0
- package/external/folly/folly/synchronization/SmallLocks.h +36 -0
- package/external/folly/folly/synchronization/ThrottledLifoSem.h +362 -0
- package/external/folly/folly/synchronization/WaitOptions.cpp +25 -0
- package/external/folly/folly/synchronization/WaitOptions.h +75 -0
- package/external/folly/folly/synchronization/detail/AtomicUtils.h +59 -0
- package/external/folly/folly/synchronization/detail/BUCK +104 -0
- package/external/folly/folly/synchronization/detail/Hardware.cpp +192 -0
- package/external/folly/folly/synchronization/detail/Hardware.h +75 -0
- package/external/folly/folly/synchronization/detail/HazptrUtils.h +339 -0
- package/external/folly/folly/synchronization/detail/InlineFunctionRef.h +229 -0
- package/external/folly/folly/synchronization/detail/Sleeper.cpp +27 -0
- package/external/folly/folly/synchronization/detail/Sleeper.h +62 -0
- package/external/folly/folly/synchronization/detail/Spin.h +96 -0
- package/external/folly/folly/synchronization/detail/ThreadCachedLists.h +174 -0
- package/external/folly/folly/synchronization/detail/ThreadCachedReaders.h +189 -0
- package/external/folly/folly/synchronization/detail/ThreadCachedTag.h +26 -0
- package/external/folly/folly/synchronization/detail/test/BUCK +28 -0
- package/external/folly/folly/synchronization/detail/test/HardwareTest.cpp +74 -0
- package/external/folly/folly/synchronization/detail/test/InlineFunctionRefTest.cpp +286 -0
- package/external/folly/folly/synchronization/example/BUCK +27 -0
- package/external/folly/folly/synchronization/example/HazptrLockFreeLIFO.h +88 -0
- package/external/folly/folly/synchronization/example/HazptrSWMRSet.h +133 -0
- package/external/folly/folly/synchronization/example/HazptrWideCAS.h +62 -0
- package/external/folly/folly/synchronization/test/AtomicNotificationTest.cpp +236 -0
- package/external/folly/folly/synchronization/test/AtomicRefTest.cpp +170 -0
- package/external/folly/folly/synchronization/test/AtomicStructTest.cpp +65 -0
- package/external/folly/folly/synchronization/test/AtomicUtilBench.cpp +457 -0
- package/external/folly/folly/synchronization/test/AtomicUtilTest.cpp +650 -0
- package/external/folly/folly/synchronization/test/BUCK +495 -0
- package/external/folly/folly/synchronization/test/Barrier.h +52 -0
- package/external/folly/folly/synchronization/test/BarrierTest.cpp +56 -0
- package/external/folly/folly/synchronization/test/BatonBenchmark.cpp +77 -0
- package/external/folly/folly/synchronization/test/BatonTest.cpp +164 -0
- package/external/folly/folly/synchronization/test/BatonTestHelpers.h +118 -0
- package/external/folly/folly/synchronization/test/CallOnceBenchmark.cpp +72 -0
- package/external/folly/folly/synchronization/test/CallOnceTest.cpp +153 -0
- package/external/folly/folly/synchronization/test/DelayedInitTest.cpp +281 -0
- package/external/folly/folly/synchronization/test/DistributedMutexTest.cpp +2074 -0
- package/external/folly/folly/synchronization/test/EventCountTest.cpp +124 -0
- package/external/folly/folly/synchronization/test/FlatCombiningBenchmark.cpp +1789 -0
- package/external/folly/folly/synchronization/test/FlatCombiningExamples.h +222 -0
- package/external/folly/folly/synchronization/test/FlatCombiningTest.cpp +121 -0
- package/external/folly/folly/synchronization/test/FlatCombiningTestHelpers.h +227 -0
- package/external/folly/folly/synchronization/test/HazptrTest.cpp +1689 -0
- package/external/folly/folly/synchronization/test/LatchTest.cpp +224 -0
- package/external/folly/folly/synchronization/test/LifoSemBench.cpp +185 -0
- package/external/folly/folly/synchronization/test/LifoSemTests.cpp +353 -0
- package/external/folly/folly/synchronization/test/LockTest.cpp +1239 -0
- package/external/folly/folly/synchronization/test/NativeSemaphoreTest.cpp +37 -0
- package/external/folly/folly/synchronization/test/ParkingLotBenchmark.cpp +239 -0
- package/external/folly/folly/synchronization/test/ParkingLotTest.cpp +170 -0
- package/external/folly/folly/synchronization/test/RWSpinLockTest.cpp +235 -0
- package/external/folly/folly/synchronization/test/RcuBench.cpp +66 -0
- package/external/folly/folly/synchronization/test/RcuTest.cpp +330 -0
- package/external/folly/folly/synchronization/test/RelaxedAtomicTest.cpp +389 -0
- package/external/folly/folly/synchronization/test/SaturatingSemaphoreTest.cpp +166 -0
- package/external/folly/folly/synchronization/test/Semaphore.h +242 -0
- package/external/folly/folly/synchronization/test/SemaphoreTest.cpp +271 -0
- package/external/folly/folly/synchronization/test/SmallLocksBenchmark.cpp +1296 -0
- package/external/folly/folly/synchronization/test/SmallLocksTest.cpp +510 -0
- package/external/folly/folly/synchronization/test/ThreadCachedEpochBench.h +67 -0
- package/external/folly/folly/synchronization/test/ThreadCachedReadersBench.cpp +42 -0
- package/external/folly/folly/synchronization/test/ThreadCachedReadersTest.cpp +52 -0
- package/external/folly/folly/synchronization/test/ThrottledLifoSemTest.cpp +243 -0
- package/external/folly/folly/system/AtFork.cpp +205 -0
- package/external/folly/folly/system/AtFork.h +116 -0
- package/external/folly/folly/system/AuxVector.h +198 -0
- package/external/folly/folly/system/BUCK +144 -0
- package/external/folly/folly/system/EnvUtil.cpp +93 -0
- package/external/folly/folly/system/EnvUtil.h +113 -0
- package/external/folly/folly/system/HardwareConcurrency.cpp +39 -0
- package/external/folly/folly/system/HardwareConcurrency.h +23 -0
- package/external/folly/folly/system/MemoryMapping.cpp +477 -0
- package/external/folly/folly/system/MemoryMapping.h +287 -0
- package/external/folly/folly/system/Pid.cpp +87 -0
- package/external/folly/folly/system/Pid.h +34 -0
- package/external/folly/folly/system/Shell.cpp +33 -0
- package/external/folly/folly/system/Shell.h +93 -0
- package/external/folly/folly/system/ThreadId.cpp +89 -0
- package/external/folly/folly/system/ThreadId.h +62 -0
- package/external/folly/folly/system/ThreadName.cpp +330 -0
- package/external/folly/folly/system/ThreadName.h +72 -0
- package/external/folly/folly/system/test/AtForkTest.cpp +309 -0
- package/external/folly/folly/system/test/AuxVectorTest.cpp +55 -0
- package/external/folly/folly/system/test/BUCK +120 -0
- package/external/folly/folly/system/test/EnvUtilSubprocess.cpp +26 -0
- package/external/folly/folly/system/test/EnvUtilTest.cpp +197 -0
- package/external/folly/folly/system/test/MemoryMappingTest.cpp +179 -0
- package/external/folly/folly/system/test/PidTest.cpp +46 -0
- package/external/folly/folly/system/test/ShellTest.cpp +66 -0
- package/external/folly/folly/system/test/ThreadIdTest.cpp +114 -0
- package/external/folly/folly/system/test/ThreadNameTest.cpp +85 -0
- package/external/folly/folly.vcxitems +164 -0
- package/external/folly/static/logo.svg +1 -0
- package/external/folly/sync-config.json +8 -0
- package/package.json +6 -6
- package/template/cpp-lib/proj/MyLib.sln +0 -33
- package/template/cs-lib/proj/MyLib.sln +0 -33
- package/templates/cpp-app/windows/MyApp.sln +0 -33
- package/templates/cpp-lib/example/metro.config.js +30 -4
- package/templates/cpp-lib/windows/MyLib.sln +0 -33
- package/Folly/Folly.vcxproj +0 -378
- package/Folly/Folly.vcxproj.filters +0 -558
- package/fmt/fmt.vcxproj +0 -153
- package/fmt/fmt.vcxproj.filters +0 -59
- package/fmt/pch.cpp +0 -4
- package/fmt/pch.h +0 -2
- /package/{fmt → external/fmt}/cgmanifest.json +0 -0
- /package/{Folly → external/folly}/Folly.natvis +0 -0
- /package/{Folly → external/folly}/cgmanifest.json +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/ConstexprMath.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/Conv.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/chrono/Hardware.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/concurrency/CacheLocality.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/dynamic-inl.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/json.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/SafeAssert.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/portability/Unistd.cpp +0 -0
|
@@ -0,0 +1,564 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#pragma once
|
|
18
|
+
|
|
19
|
+
#include <atomic>
|
|
20
|
+
#include <cstddef>
|
|
21
|
+
#include <new>
|
|
22
|
+
#include <thread>
|
|
23
|
+
|
|
24
|
+
#include <folly/CPortability.h>
|
|
25
|
+
#include <folly/ConstexprMath.h>
|
|
26
|
+
#include <folly/Likely.h>
|
|
27
|
+
#include <folly/ScopeGuard.h>
|
|
28
|
+
#include <folly/lang/Align.h>
|
|
29
|
+
#include <folly/lang/Bits.h>
|
|
30
|
+
#include <folly/lang/New.h>
|
|
31
|
+
|
|
32
|
+
namespace folly {
|
|
33
|
+
|
|
34
|
+
/// atomic_grow_array_policy_default
|
|
35
|
+
///
|
|
36
|
+
/// A default or example policy for use with atomic_grow_array.
|
|
37
|
+
template <typename Item>
|
|
38
|
+
struct atomic_grow_array_policy_default {
|
|
39
|
+
std::size_t grow(
|
|
40
|
+
std::size_t /* const curr */, std::size_t const index) const noexcept {
|
|
41
|
+
return nextPowTwo(index + 1);
|
|
42
|
+
}
|
|
43
|
+
Item make() const noexcept(noexcept(Item())) { return Item(); }
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/// atomic_grow_array
|
|
47
|
+
///
|
|
48
|
+
/// A specialized data structure roughly modeling an infinite heap-allocated
|
|
49
|
+
/// array. The array is of course not actually infinite in size, but indexed
|
|
50
|
+
/// access at any index is always permitted. The container features both
|
|
51
|
+
/// reference-stability and iterator-stability.
|
|
52
|
+
///
|
|
53
|
+
/// Supports fast concurrent `operator[](size_t)`, which returns a reference to
|
|
54
|
+
/// the element at the given position. Indexed access is wait-free, modulo the
|
|
55
|
+
/// allocator algorithm and modulo element constructors. Indexed access has and
|
|
56
|
+
/// is intended to have a fast, minimal instruction sequence.
|
|
57
|
+
///
|
|
58
|
+
/// The array capacity may only grow and not shrink. When array capacity grows,
|
|
59
|
+
/// the array size grows to fill the capacity. This means that all the elements
|
|
60
|
+
/// that would be required to fill the capacity are allocated and constructed
|
|
61
|
+
/// during growth. Moreover, multiple threads may race to grow the capacity, in
|
|
62
|
+
/// which case only one thread wins the race - the threads losing the race then
|
|
63
|
+
/// destroy all elements they created in that round of racing to grow the array
|
|
64
|
+
/// capacity.
|
|
65
|
+
///
|
|
66
|
+
/// With the default policy featuring power-of-two exponential growth, the
|
|
67
|
+
/// number of outstanding allocations is:
|
|
68
|
+
/// log2(capacity)
|
|
69
|
+
/// And the outstanding allocations' sizes sum to:
|
|
70
|
+
/// log2(capacity) * 2 * sizeof(void*) <--- array-segment metadata
|
|
71
|
+
/// capacity * 2 * sizeof(void*) <--- array-segment pointers list
|
|
72
|
+
/// capacity * sizeof(value_type) <--- array-segment elements slab
|
|
73
|
+
/// Modulo allocator size-classes, of which this container makes no attempt to
|
|
74
|
+
/// take advantage, and value-type alignment.
|
|
75
|
+
template <
|
|
76
|
+
typename Item,
|
|
77
|
+
typename Policy = atomic_grow_array_policy_default<Item>>
|
|
78
|
+
class atomic_grow_array : private Policy {
|
|
79
|
+
public:
|
|
80
|
+
using size_type = std::size_t;
|
|
81
|
+
using value_type = Item;
|
|
82
|
+
|
|
83
|
+
class iterator;
|
|
84
|
+
class const_iterator;
|
|
85
|
+
|
|
86
|
+
private:
|
|
87
|
+
static constexpr bool is_nothrow_grow_v =
|
|
88
|
+
noexcept(FOLLY_DECLVAL(Policy const&).grow(0, 0)) &&
|
|
89
|
+
noexcept(FOLLY_DECLVAL(Policy const&).make()) &&
|
|
90
|
+
noexcept(::operator new(0));
|
|
91
|
+
|
|
92
|
+
struct array;
|
|
93
|
+
|
|
94
|
+
struct end_tag {};
|
|
95
|
+
|
|
96
|
+
template <bool>
|
|
97
|
+
class basic_view;
|
|
98
|
+
|
|
99
|
+
template <bool Const, typename Down>
|
|
100
|
+
class basic_iterator {
|
|
101
|
+
private:
|
|
102
|
+
template <bool, typename>
|
|
103
|
+
friend class basic_iterator;
|
|
104
|
+
template <bool>
|
|
105
|
+
friend class basic_view;
|
|
106
|
+
|
|
107
|
+
using self = basic_iterator;
|
|
108
|
+
using down = Down;
|
|
109
|
+
friend down;
|
|
110
|
+
|
|
111
|
+
template <typename T>
|
|
112
|
+
using maybe_add_const_t = conditional_t<Const, T const, T>;
|
|
113
|
+
|
|
114
|
+
array const* array_{};
|
|
115
|
+
size_type index_{};
|
|
116
|
+
|
|
117
|
+
basic_iterator(array const* const a, size_type const i) noexcept
|
|
118
|
+
: array_{a}, index_{i} {}
|
|
119
|
+
basic_iterator(array const* const a, end_tag) noexcept
|
|
120
|
+
: array_{a}, index_{a ? a->size : 0} {}
|
|
121
|
+
|
|
122
|
+
template <
|
|
123
|
+
bool ThatC,
|
|
124
|
+
typename ThatDown,
|
|
125
|
+
bool ThisC = Const,
|
|
126
|
+
typename = std::enable_if_t<!ThatC && ThisC>>
|
|
127
|
+
explicit basic_iterator(basic_iterator<ThatC, ThatDown> that) noexcept
|
|
128
|
+
: array_{that.array_}, index_{that.index_} {}
|
|
129
|
+
|
|
130
|
+
down& as_down() noexcept { return static_cast<down&>(*this); }
|
|
131
|
+
down const& as_down() const noexcept {
|
|
132
|
+
return static_cast<down const&>(*this);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
public:
|
|
136
|
+
using iterator_category = std::random_access_iterator_tag;
|
|
137
|
+
using value_type = atomic_grow_array::value_type;
|
|
138
|
+
using difference_type = std::ptrdiff_t;
|
|
139
|
+
using pointer = maybe_add_const_t<value_type>*;
|
|
140
|
+
using reference = maybe_add_const_t<value_type>&;
|
|
141
|
+
|
|
142
|
+
basic_iterator() = default; // produces an invalid iterator
|
|
143
|
+
|
|
144
|
+
down& operator++() noexcept { return ++index_, as_down(); }
|
|
145
|
+
down operator++(int) noexcept { return down{array_, index_++}; }
|
|
146
|
+
down& operator+=(difference_type const n) noexcept {
|
|
147
|
+
return index_ += n, as_down();
|
|
148
|
+
}
|
|
149
|
+
down operator+(difference_type const n) noexcept {
|
|
150
|
+
return down{as_down()} += n;
|
|
151
|
+
}
|
|
152
|
+
down& operator-=(difference_type const n) noexcept {
|
|
153
|
+
return index_ -= n, as_down();
|
|
154
|
+
}
|
|
155
|
+
down operator-(difference_type const n) noexcept {
|
|
156
|
+
return down{as_down()} -= n;
|
|
157
|
+
}
|
|
158
|
+
friend difference_type operator-(down const lhs, down const rhs) noexcept {
|
|
159
|
+
return lhs.index_ - rhs.index_;
|
|
160
|
+
}
|
|
161
|
+
friend bool operator==(down const lhs, down const rhs) noexcept {
|
|
162
|
+
return lhs.index_ == rhs.index_;
|
|
163
|
+
}
|
|
164
|
+
friend bool operator!=(down const lhs, down const rhs) noexcept {
|
|
165
|
+
return lhs.index_ != rhs.index_;
|
|
166
|
+
}
|
|
167
|
+
friend bool operator<(down const lhs, down const rhs) noexcept {
|
|
168
|
+
return lhs.index < rhs.index_;
|
|
169
|
+
}
|
|
170
|
+
friend bool operator<=(down const lhs, down const rhs) noexcept {
|
|
171
|
+
return lhs.index <= rhs.index_;
|
|
172
|
+
}
|
|
173
|
+
friend bool operator>(down const lhs, down const rhs) noexcept {
|
|
174
|
+
return lhs.index > rhs.index_;
|
|
175
|
+
}
|
|
176
|
+
friend bool operator>=(down const lhs, down const rhs) noexcept {
|
|
177
|
+
return lhs.index >= rhs.index_;
|
|
178
|
+
}
|
|
179
|
+
reference operator*() noexcept { return *array_->list[index_]; }
|
|
180
|
+
reference operator[](difference_type const n) { return *(*this + n); }
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
template <bool Const>
|
|
184
|
+
class basic_view {
|
|
185
|
+
private:
|
|
186
|
+
friend atomic_grow_array;
|
|
187
|
+
|
|
188
|
+
template <typename T>
|
|
189
|
+
using maybe_add_const_t = conditional_t<Const, T const, T>;
|
|
190
|
+
|
|
191
|
+
using up = atomic_grow_array;
|
|
192
|
+
|
|
193
|
+
array const* array_{};
|
|
194
|
+
|
|
195
|
+
explicit basic_view(array const* arr) noexcept : array_{arr} {}
|
|
196
|
+
|
|
197
|
+
template <
|
|
198
|
+
bool ThatC,
|
|
199
|
+
bool ThisC = Const,
|
|
200
|
+
typename = std::enable_if_t<!ThatC && ThisC>>
|
|
201
|
+
explicit basic_view(basic_view<ThatC> that) noexcept
|
|
202
|
+
: array_{that.array_} {}
|
|
203
|
+
|
|
204
|
+
public:
|
|
205
|
+
using value_type = typename atomic_grow_array::value_type;
|
|
206
|
+
using size_type = typename atomic_grow_array::size_type;
|
|
207
|
+
using reference = maybe_add_const_t<value_type>&;
|
|
208
|
+
using const_reference = value_type const&;
|
|
209
|
+
using iterator = conditional_t<Const, up::const_iterator, up::iterator>;
|
|
210
|
+
using const_iterator = up::const_iterator;
|
|
211
|
+
|
|
212
|
+
basic_view() = default; // produces an invalid view
|
|
213
|
+
|
|
214
|
+
iterator begin() noexcept { return iterator{array_, 0}; }
|
|
215
|
+
const_iterator begin() const noexcept { return iterator{array_, 0}; }
|
|
216
|
+
const_iterator cbegin() const noexcept { return iterator{array_, 0}; }
|
|
217
|
+
iterator end() noexcept { return iterator{array_, end_tag{}}; }
|
|
218
|
+
const_iterator end() const noexcept { return iterator{array_, end_tag{}}; }
|
|
219
|
+
const_iterator cend() const noexcept { return iterator{array_, end_tag{}}; }
|
|
220
|
+
|
|
221
|
+
size_type size() const noexcept { return array_ ? array_->size : 0; }
|
|
222
|
+
bool empty() const noexcept { return !size(); }
|
|
223
|
+
|
|
224
|
+
reference operator[](size_type index) noexcept {
|
|
225
|
+
return *array_->list[index];
|
|
226
|
+
}
|
|
227
|
+
const_reference operator[](size_type index) const noexcept {
|
|
228
|
+
return *array_->list[index];
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
public:
|
|
233
|
+
atomic_grow_array() = default;
|
|
234
|
+
explicit atomic_grow_array(Policy const& policy_) //
|
|
235
|
+
noexcept(noexcept(Policy{policy_}))
|
|
236
|
+
: Policy{policy_} {}
|
|
237
|
+
~atomic_grow_array() { reset(); }
|
|
238
|
+
|
|
239
|
+
Policy const& policy() const noexcept {
|
|
240
|
+
return static_cast<Policy const&>(*this);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/// size
|
|
244
|
+
///
|
|
245
|
+
/// A recent value of the true size.
|
|
246
|
+
///
|
|
247
|
+
/// Always a lower bound of - ie, never larger than - the true size.
|
|
248
|
+
///
|
|
249
|
+
/// Example:
|
|
250
|
+
///
|
|
251
|
+
/// atomic_grow_array& array = /* ... */;
|
|
252
|
+
/// for (size_t i = 0; i < array.size(); ++i) {
|
|
253
|
+
/// do_something_with(array[i]);
|
|
254
|
+
/// }
|
|
255
|
+
size_t size() const noexcept { return size_.load(mo_acquire); }
|
|
256
|
+
|
|
257
|
+
/// empty
|
|
258
|
+
///
|
|
259
|
+
/// Equivalent to size() == 0.
|
|
260
|
+
bool empty() const noexcept { return size() == 0; }
|
|
261
|
+
|
|
262
|
+
/// operator[]
|
|
263
|
+
///
|
|
264
|
+
/// A reference to the element at the given index.
|
|
265
|
+
///
|
|
266
|
+
/// Every index is always valid, modulo system memory size of course.
|
|
267
|
+
///
|
|
268
|
+
/// The principal meaning is that it is not necessary to configure a capacity
|
|
269
|
+
/// limit in all deployed environments, to monitor the accuracies of those
|
|
270
|
+
/// capacity limit in all deployed environments, and to update those capacity
|
|
271
|
+
/// limits as their accuracies suffer.
|
|
272
|
+
///
|
|
273
|
+
/// Intended for dense indexed access patterns and not for sparse indexed
|
|
274
|
+
/// access patterns. For the sparse case, at large sizes, a concurrent
|
|
275
|
+
/// unordered-map would have much less memory overhead and much less growth
|
|
276
|
+
/// compute overhead. The reason is that the memory overhead and growth
|
|
277
|
+
/// compute overhead in this data structure, with the default policy, is
|
|
278
|
+
/// proportional to the maximum index accessed, while for an unordered-map it
|
|
279
|
+
/// would be proportional to the number of accessed indices.
|
|
280
|
+
///
|
|
281
|
+
/// Indexed access during element construction is forbidden but undiagnosed.
|
|
282
|
+
/// One likely scenario is stack overflow; another is memory exhaustion.
|
|
283
|
+
FOLLY_ALWAYS_INLINE value_type& operator[](size_type const index) //
|
|
284
|
+
noexcept(is_nothrow_grow_v) {
|
|
285
|
+
auto const x = index < size_.load(mo_acquire);
|
|
286
|
+
auto const p = FOLLY_LIKELY(x) ? array_.load(mo_acquire) : at_slow(index);
|
|
287
|
+
return *p->list[index];
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/// iterator
|
|
291
|
+
///
|
|
292
|
+
/// An iterator type used by view.
|
|
293
|
+
class iterator : private basic_iterator<false, iterator> {
|
|
294
|
+
using base = basic_iterator<false, iterator>;
|
|
295
|
+
friend base;
|
|
296
|
+
friend const_iterator;
|
|
297
|
+
template <bool>
|
|
298
|
+
friend class basic_view;
|
|
299
|
+
|
|
300
|
+
public:
|
|
301
|
+
using typename base::difference_type;
|
|
302
|
+
using typename base::iterator_category;
|
|
303
|
+
using typename base::pointer;
|
|
304
|
+
using typename base::reference;
|
|
305
|
+
using typename base::value_type;
|
|
306
|
+
|
|
307
|
+
using base::base;
|
|
308
|
+
using base::operator++;
|
|
309
|
+
using base::operator+;
|
|
310
|
+
using base::operator+=;
|
|
311
|
+
using base::operator-;
|
|
312
|
+
using base::operator-=;
|
|
313
|
+
using base::operator*;
|
|
314
|
+
using base::operator[];
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
/// const_iterator
|
|
318
|
+
///
|
|
319
|
+
/// An iterator type used by view and const_view.
|
|
320
|
+
class const_iterator : private basic_iterator<true, const_iterator> {
|
|
321
|
+
using base = basic_iterator<true, const_iterator>;
|
|
322
|
+
friend base;
|
|
323
|
+
template <bool>
|
|
324
|
+
friend class basic_view;
|
|
325
|
+
|
|
326
|
+
public:
|
|
327
|
+
using typename base::difference_type;
|
|
328
|
+
using typename base::iterator_category;
|
|
329
|
+
using typename base::pointer;
|
|
330
|
+
using typename base::reference;
|
|
331
|
+
using typename base::value_type;
|
|
332
|
+
|
|
333
|
+
using base::base;
|
|
334
|
+
using base::operator++;
|
|
335
|
+
using base::operator+;
|
|
336
|
+
using base::operator+=;
|
|
337
|
+
using base::operator-;
|
|
338
|
+
using base::operator-=;
|
|
339
|
+
using base::operator*;
|
|
340
|
+
using base::operator[];
|
|
341
|
+
|
|
342
|
+
/* implicit */ const_iterator(iterator that) noexcept : base{that} {}
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
/// view
|
|
346
|
+
///
|
|
347
|
+
/// Models std::ranges::range.
|
|
348
|
+
///
|
|
349
|
+
/// Gives a view over all of the elements available at the time the view was
|
|
350
|
+
/// created. If the array capacity is later increased, the view will not cover
|
|
351
|
+
/// the new elements but it and its iterators will all remain valid.
|
|
352
|
+
class view : private basic_view<false> {
|
|
353
|
+
friend atomic_grow_array;
|
|
354
|
+
using base = basic_view<false>;
|
|
355
|
+
|
|
356
|
+
public:
|
|
357
|
+
using typename base::const_iterator;
|
|
358
|
+
using typename base::const_reference;
|
|
359
|
+
using typename base::iterator;
|
|
360
|
+
using typename base::reference;
|
|
361
|
+
using typename base::size_type;
|
|
362
|
+
using typename base::value_type;
|
|
363
|
+
|
|
364
|
+
using base::base;
|
|
365
|
+
using base::begin;
|
|
366
|
+
using base::cbegin;
|
|
367
|
+
using base::cend;
|
|
368
|
+
using base::empty;
|
|
369
|
+
using base::end;
|
|
370
|
+
using base::size;
|
|
371
|
+
using base::operator[];
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
/// const_view
|
|
375
|
+
///
|
|
376
|
+
/// Models std::ranges::range.
|
|
377
|
+
///
|
|
378
|
+
/// Gives a view over all of the elements available at the time the view was
|
|
379
|
+
/// created. If the array capacity is later increased, the view will not cover
|
|
380
|
+
/// the new elements but it and its iterators will all remain valid.
|
|
381
|
+
class const_view : private basic_view<true> {
|
|
382
|
+
friend atomic_grow_array;
|
|
383
|
+
using base = basic_view<true>;
|
|
384
|
+
|
|
385
|
+
public:
|
|
386
|
+
using typename base::const_iterator;
|
|
387
|
+
using typename base::const_reference;
|
|
388
|
+
using typename base::iterator;
|
|
389
|
+
using typename base::reference;
|
|
390
|
+
using typename base::size_type;
|
|
391
|
+
using typename base::value_type;
|
|
392
|
+
|
|
393
|
+
using base::base;
|
|
394
|
+
using base::begin;
|
|
395
|
+
using base::cbegin;
|
|
396
|
+
using base::cend;
|
|
397
|
+
using base::empty;
|
|
398
|
+
using base::end;
|
|
399
|
+
using base::size;
|
|
400
|
+
using base::operator[];
|
|
401
|
+
|
|
402
|
+
/* implicit */ const_view(view that) noexcept : base{that} {}
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
/// as_view
|
|
406
|
+
///
|
|
407
|
+
/// Example:
|
|
408
|
+
///
|
|
409
|
+
/// atomic_grow_array& array = /* ... */;
|
|
410
|
+
/// for (auto& item : array.as_view()) {
|
|
411
|
+
/// do_something_with(item);
|
|
412
|
+
/// }
|
|
413
|
+
///
|
|
414
|
+
/// If the atomic_grow_array is grown after the call to as_view(), the
|
|
415
|
+
/// returned view will provide access only to the size and elements at the
|
|
416
|
+
/// time it was created and not to a later size or to elements created later.
|
|
417
|
+
///
|
|
418
|
+
/// Notes:
|
|
419
|
+
/// * This exists since the choice is for atomic_grow_array not to model a
|
|
420
|
+
/// range directly. Such a range could not be as performant and could have
|
|
421
|
+
/// surprising behavior, such as this expression maybe evaluating to false:
|
|
422
|
+
/// (array.begin() == array.end()) == (array.begin() == array.end())
|
|
423
|
+
/// * May be more performant than repeatedly indexing with operator[] up until
|
|
424
|
+
/// size(), even when size() is gotten once and then cached.
|
|
425
|
+
view as_view() noexcept { return view{array_.load(mo_acquire)}; }
|
|
426
|
+
const_view as_view() const noexcept { return view{array_.load(mo_acquire)}; }
|
|
427
|
+
|
|
428
|
+
private:
|
|
429
|
+
static constexpr auto mo_acquire = std::memory_order_acquire;
|
|
430
|
+
static constexpr auto mo_release = std::memory_order_release;
|
|
431
|
+
static constexpr auto mo_acq_rel = std::memory_order_acq_rel;
|
|
432
|
+
|
|
433
|
+
// prefix of layout structure
|
|
434
|
+
//
|
|
435
|
+
// missing alignment and suffix because there are two variable-sized array
|
|
436
|
+
// fields
|
|
437
|
+
struct array {
|
|
438
|
+
array* next{}; // maybe null; const
|
|
439
|
+
size_type size{}; // size != 0; size > (next ? next->size : 0); const
|
|
440
|
+
value_type* list[]; // value_type* list[size]; const
|
|
441
|
+
// value_type slab[size - (next ? next->size : 0)]; non-const
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
FOLLY_NOINLINE array* at_slow(size_type const index) //
|
|
445
|
+
noexcept(is_nothrow_grow_v) {
|
|
446
|
+
// uses optimistic concurrency in order to avoid the space cost of any
|
|
447
|
+
// embedded mutex or the possible contention or deadlock from any global
|
|
448
|
+
// mutex or global mutex slab
|
|
449
|
+
//
|
|
450
|
+
// deadlock from a global mutex or global mutex slab may occur if the
|
|
451
|
+
// value_type type constructor may also access the global mutex or global
|
|
452
|
+
// mutex slab, whether directly or indirectly
|
|
453
|
+
array* p = array_.load(mo_acquire);
|
|
454
|
+
array* q = nullptr;
|
|
455
|
+
size_type const size = policy().grow(p ? p->size : 0, index);
|
|
456
|
+
assert(index < size);
|
|
457
|
+
do {
|
|
458
|
+
if (p && index < p->size) {
|
|
459
|
+
return p;
|
|
460
|
+
}
|
|
461
|
+
// the race begins here
|
|
462
|
+
q = new_array(size, p);
|
|
463
|
+
if (!q) {
|
|
464
|
+
// the race is lost early
|
|
465
|
+
continue;
|
|
466
|
+
}
|
|
467
|
+
// this c/x only need success-release/failure-acquire, but c++
|
|
468
|
+
// implementations have trouble with that; so, success-acq-rel
|
|
469
|
+
// see: folly::atomic_compare_exchange_strong_explicit
|
|
470
|
+
if (array_.compare_exchange_strong(p, q, mo_acq_rel, mo_acquire)) {
|
|
471
|
+
// the race is won
|
|
472
|
+
size_.store(size, mo_release);
|
|
473
|
+
return q;
|
|
474
|
+
}
|
|
475
|
+
// the race is lost
|
|
476
|
+
del_array(q);
|
|
477
|
+
} while (1);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
static constexpr size_type array_align() {
|
|
481
|
+
return folly::constexpr_max(folly::max_align_v, alignof(value_type));
|
|
482
|
+
}
|
|
483
|
+
static size_type array_size(size_type const size, size_type const base) {
|
|
484
|
+
constexpr auto a = array_align();
|
|
485
|
+
return //
|
|
486
|
+
folly::constexpr_ceil(sizeof(array) + size * sizeof(value_type*), a) +
|
|
487
|
+
folly::constexpr_ceil((size - base) * sizeof(value_type), a);
|
|
488
|
+
}
|
|
489
|
+
static value_type* array_slab(array* const curr) {
|
|
490
|
+
return reinterpret_cast<value_type*>(folly::constexpr_ceil(
|
|
491
|
+
reinterpret_cast<uintptr_t>(&curr->list[curr->size]),
|
|
492
|
+
static_cast<uintptr_t>(array_align())));
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
array* new_array(size_type const size, array*& next) {
|
|
496
|
+
auto const base = next ? next->size : 0;
|
|
497
|
+
assert(size > base);
|
|
498
|
+
array* curr = static_cast<array*>(
|
|
499
|
+
operator_new(array_size(size, base), std::align_val_t{array_align()}));
|
|
500
|
+
auto rollback = folly::makeGuard([&] { del_array(curr); });
|
|
501
|
+
curr->size = size;
|
|
502
|
+
curr->next = next;
|
|
503
|
+
auto const slab = array_slab(curr);
|
|
504
|
+
// copy pointers to all pre-existing elements; cannot throw
|
|
505
|
+
for (size_type i = 0; i < base; ++i) {
|
|
506
|
+
curr->list[i] = next->list[i];
|
|
507
|
+
}
|
|
508
|
+
// zero-initialize to new elements; cannot throw
|
|
509
|
+
for (size_type i = base; i < size; ++i) {
|
|
510
|
+
curr->list[i] = nullptr;
|
|
511
|
+
}
|
|
512
|
+
// initialize new elements and the pointers to them; may throw
|
|
513
|
+
for (size_type i = base; i < size; ++i) {
|
|
514
|
+
// detect race losses early
|
|
515
|
+
// just need release, but acquire for consistency with c/x in at_slow
|
|
516
|
+
if (auto const p = array_.load(std::memory_order_acquire); p != next) {
|
|
517
|
+
next = p;
|
|
518
|
+
return nullptr;
|
|
519
|
+
}
|
|
520
|
+
// no race loss yet
|
|
521
|
+
curr->list[i] = ::new (&slab[i - base]) value_type(policy().make());
|
|
522
|
+
}
|
|
523
|
+
rollback.dismiss();
|
|
524
|
+
return curr;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
void del_array(array* const curr) {
|
|
528
|
+
assert(curr);
|
|
529
|
+
auto size = curr->size;
|
|
530
|
+
auto const next = curr->next;
|
|
531
|
+
auto const base = next ? next->size : 0;
|
|
532
|
+
assert(size > base);
|
|
533
|
+
// skip past zero-initialized pointers at the end since their corresponding
|
|
534
|
+
// elements were never created - this situation arises when initialization
|
|
535
|
+
// of an element fails within new_array and the rollback calls del_array
|
|
536
|
+
while (size > base && !curr->list[size - 1]) {
|
|
537
|
+
--size;
|
|
538
|
+
}
|
|
539
|
+
// destroy elements owned by this array only, and not elements owned by any
|
|
540
|
+
// other arrays - those elements will be destroyed by del_array calls on
|
|
541
|
+
// their owning arrays
|
|
542
|
+
for (size_type i = 0; i < size - base; ++i) {
|
|
543
|
+
curr->list[size - 1 - i]->~value_type();
|
|
544
|
+
}
|
|
545
|
+
operator_delete(
|
|
546
|
+
static_cast<void*>(curr),
|
|
547
|
+
array_size(curr->size, base),
|
|
548
|
+
std::align_val_t{array_align()});
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
void reset() {
|
|
552
|
+
auto curr = array_.load(mo_acquire);
|
|
553
|
+
while (curr) {
|
|
554
|
+
auto const next = curr->next;
|
|
555
|
+
del_array(curr);
|
|
556
|
+
curr = next;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
std::atomic<size_type> size_{0};
|
|
561
|
+
std::atomic<array*> array_{nullptr};
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
} // namespace folly
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest")
|
|
2
|
+
|
|
3
|
+
oncall("fbcode_entropy_wardens_folly")
|
|
4
|
+
|
|
5
|
+
cpp_unittest(
|
|
6
|
+
name = "atomic_grow_array_test",
|
|
7
|
+
srcs = ["atomic_grow_array_test.cpp"],
|
|
8
|
+
deps = [
|
|
9
|
+
"//folly/concurrency/container:atomic_grow_array",
|
|
10
|
+
"//folly/lang:keep",
|
|
11
|
+
"//folly/portability:gtest",
|
|
12
|
+
],
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
cpp_unittest(
|
|
16
|
+
name = "relaxed_concurrent_priority_queue_test",
|
|
17
|
+
srcs = ["RelaxedConcurrentPriorityQueueTest.cpp"],
|
|
18
|
+
headers = [],
|
|
19
|
+
deps = [
|
|
20
|
+
"//folly:random",
|
|
21
|
+
"//folly:spin_lock",
|
|
22
|
+
"//folly/concurrency/container:flat_combining_priority_queue",
|
|
23
|
+
"//folly/concurrency/container:relaxed_concurrent_priority_queue",
|
|
24
|
+
"//folly/portability:gflags",
|
|
25
|
+
"//folly/portability:gtest",
|
|
26
|
+
"//folly/test:deterministic_schedule",
|
|
27
|
+
],
|
|
28
|
+
external_deps = [
|
|
29
|
+
"glog",
|
|
30
|
+
("boost", None, "boost_thread"),
|
|
31
|
+
],
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
cpp_unittest(
|
|
35
|
+
name = "lock_free_ring_buffer_test",
|
|
36
|
+
srcs = ["LockFreeRingBufferTest.cpp"],
|
|
37
|
+
headers = [],
|
|
38
|
+
deps = [
|
|
39
|
+
"//folly/concurrency/container:lock_free_ring_buffer",
|
|
40
|
+
"//folly/portability:gtest",
|
|
41
|
+
"//folly/test:deterministic_schedule",
|
|
42
|
+
],
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
cpp_unittest(
|
|
46
|
+
name = "flat_combining_priority_queue_test",
|
|
47
|
+
srcs = ["FlatCombiningPriorityQueueTest.cpp"],
|
|
48
|
+
headers = [],
|
|
49
|
+
deps = [
|
|
50
|
+
"//folly:benchmark",
|
|
51
|
+
"//folly/concurrency/container:flat_combining_priority_queue",
|
|
52
|
+
"//folly/portability:gtest",
|
|
53
|
+
],
|
|
54
|
+
external_deps = [
|
|
55
|
+
"glog",
|
|
56
|
+
],
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
cpp_unittest(
|
|
60
|
+
name = "single_writer_fixed_hash_map_test",
|
|
61
|
+
srcs = ["SingleWriterFixedHashMapTest.cpp"],
|
|
62
|
+
headers = [],
|
|
63
|
+
deps = [
|
|
64
|
+
"//folly:benchmark",
|
|
65
|
+
"//folly/concurrency/container:single_writer_fixed_hash_map",
|
|
66
|
+
"//folly/container:array",
|
|
67
|
+
"//folly/portability:gflags",
|
|
68
|
+
"//folly/portability:gtest",
|
|
69
|
+
"//folly/synchronization/test:barrier",
|
|
70
|
+
],
|
|
71
|
+
external_deps = [
|
|
72
|
+
("boost", None, "boost_thread"),
|
|
73
|
+
"glog",
|
|
74
|
+
],
|
|
75
|
+
)
|