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.
Files changed (921) hide show
  1. package/Directory.Build.props +2 -17
  2. package/Folly/ThreadNameStub.cpp +4 -6
  3. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  4. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -7
  5. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -3
  6. package/PropertySheets/CIBuildOptimizations.props +2 -2
  7. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  8. package/PropertySheets/JSEngine.props +1 -1
  9. package/PropertySheets/NuGet.LockFile.props +10 -1
  10. package/PropertySheets/React.Cpp.props +3 -3
  11. package/ReactCommon/ReactCommon.vcxproj +0 -5
  12. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +61 -6
  13. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -37
  14. package/Scripts/UpdateNightlyDependencies.ps1 +47 -0
  15. package/Scripts/creaternwapp.cmd +5 -8
  16. package/Scripts/creaternwlib.cmd +10 -23
  17. package/Shared/Shared.vcxitems +2 -0
  18. package/{Folly → external}/.clang-format +0 -1
  19. package/external/External.vcxitems +10 -0
  20. package/external/fast-float/.syncignore +10 -0
  21. package/external/fast-float/LICENSE-APACHE +190 -0
  22. package/external/fast-float/LICENSE-BOOST +23 -0
  23. package/external/fast-float/LICENSE-MIT +27 -0
  24. package/external/fast-float/README.md +545 -0
  25. package/external/fast-float/cgmanifest.json +15 -0
  26. package/external/fast-float/fast-float.vcxitems +14 -0
  27. package/external/fast-float/include/fast_float/ascii_number.h +588 -0
  28. package/external/fast-float/include/fast_float/bigint.h +638 -0
  29. package/external/fast-float/include/fast_float/constexpr_feature_detect.h +46 -0
  30. package/external/fast-float/include/fast_float/decimal_to_binary.h +212 -0
  31. package/external/fast-float/include/fast_float/digit_comparison.h +457 -0
  32. package/external/fast-float/include/fast_float/fast_float.h +59 -0
  33. package/external/fast-float/include/fast_float/fast_table.h +708 -0
  34. package/external/fast-float/include/fast_float/float_common.h +1240 -0
  35. package/external/fast-float/include/fast_float/parse_number.h +399 -0
  36. package/external/fast-float/sync-config.json +8 -0
  37. package/external/fmt/.syncignore +10 -0
  38. package/external/fmt/CONTRIBUTING.md +20 -0
  39. package/external/fmt/LICENSE +27 -0
  40. package/external/fmt/README.md +484 -0
  41. package/external/fmt/doc/ChangeLog-old.md +3290 -0
  42. package/external/fmt/doc/api.md +650 -0
  43. package/external/fmt/doc/fmt.css +61 -0
  44. package/external/fmt/doc/fmt.js +4 -0
  45. package/external/fmt/doc/get-started.md +222 -0
  46. package/external/fmt/doc/index.md +151 -0
  47. package/external/fmt/doc/perf.svg +1 -0
  48. package/external/fmt/doc/python-license.txt +290 -0
  49. package/external/fmt/doc/syntax.md +887 -0
  50. package/external/fmt/fmt.vcxitems +28 -0
  51. package/external/fmt/include/fmt/args.h +228 -0
  52. package/external/fmt/include/fmt/base.h +3077 -0
  53. package/external/fmt/include/fmt/chrono.h +2432 -0
  54. package/external/fmt/include/fmt/color.h +612 -0
  55. package/external/fmt/include/fmt/compile.h +529 -0
  56. package/external/fmt/include/fmt/core.h +5 -0
  57. package/external/fmt/include/fmt/format-inl.h +1928 -0
  58. package/external/fmt/include/fmt/format.h +4427 -0
  59. package/external/fmt/include/fmt/os.h +439 -0
  60. package/external/fmt/include/fmt/ostream.h +211 -0
  61. package/external/fmt/include/fmt/printf.h +656 -0
  62. package/external/fmt/include/fmt/ranges.h +882 -0
  63. package/external/fmt/include/fmt/std.h +699 -0
  64. package/external/fmt/include/fmt/xchar.h +322 -0
  65. package/external/fmt/src/fmt.cc +135 -0
  66. package/external/fmt/src/format.cc +43 -0
  67. package/external/fmt/src/os.cc +403 -0
  68. package/external/fmt/sync-config.json +8 -0
  69. package/external/folly/.syncignore +60 -0
  70. package/external/folly/LICENSE +200 -0
  71. package/external/folly/README.md +263 -0
  72. package/{fmt → external/folly/folly}/.clang-format +0 -1
  73. package/external/folly/folly/AtomicHashArray-inl.h +546 -0
  74. package/external/folly/folly/AtomicHashArray.h +431 -0
  75. package/external/folly/folly/AtomicHashMap-inl.h +653 -0
  76. package/external/folly/folly/AtomicHashMap.h +484 -0
  77. package/external/folly/folly/AtomicIntrusiveLinkedList.h +206 -0
  78. package/external/folly/folly/AtomicLinkedList.h +110 -0
  79. package/external/folly/folly/AtomicUnorderedMap.h +522 -0
  80. package/external/folly/folly/BUCK +1631 -0
  81. package/external/folly/folly/BUILD_MODE.bzl +72 -0
  82. package/external/folly/folly/Benchmark.cpp +986 -0
  83. package/external/folly/folly/Benchmark.h +680 -0
  84. package/external/folly/folly/BenchmarkUtil.h +47 -0
  85. package/external/folly/folly/Bits.h +17 -0
  86. package/external/folly/folly/CMakeLists.txt +110 -0
  87. package/external/folly/folly/CPortability.h +338 -0
  88. package/external/folly/folly/CancellationToken-inl.h +449 -0
  89. package/external/folly/folly/CancellationToken.cpp +250 -0
  90. package/external/folly/folly/CancellationToken.h +365 -0
  91. package/external/folly/folly/Chrono.h +132 -0
  92. package/external/folly/folly/ClockGettimeWrappers.cpp +93 -0
  93. package/external/folly/folly/ClockGettimeWrappers.h +29 -0
  94. package/external/folly/folly/ConcurrentBitSet.h +157 -0
  95. package/external/folly/folly/ConcurrentLazy.h +74 -0
  96. package/external/folly/folly/ConcurrentSkipList-inl.h +341 -0
  97. package/external/folly/folly/ConcurrentSkipList.h +824 -0
  98. package/external/folly/folly/ConstructorCallbackList.h +158 -0
  99. package/external/folly/folly/Conv.h +2026 -0
  100. package/external/folly/folly/CppAttributes.h +170 -0
  101. package/external/folly/folly/CpuId.h +297 -0
  102. package/external/folly/folly/DefaultKeepAliveExecutor.h +172 -0
  103. package/external/folly/folly/Demangle.cpp +255 -0
  104. package/external/folly/folly/Demangle.h +73 -0
  105. package/external/folly/folly/DiscriminatedPtr.h +236 -0
  106. package/external/folly/folly/DynamicConverter.h +17 -0
  107. package/external/folly/folly/Exception.h +150 -0
  108. package/external/folly/folly/ExceptionString.cpp +51 -0
  109. package/external/folly/folly/ExceptionString.h +33 -0
  110. package/external/folly/folly/ExceptionWrapper-inl.h +264 -0
  111. package/external/folly/folly/ExceptionWrapper.cpp +37 -0
  112. package/external/folly/folly/ExceptionWrapper.h +377 -0
  113. package/external/folly/folly/Executor.cpp +111 -0
  114. package/external/folly/folly/Executor.h +351 -0
  115. package/external/folly/folly/Expected.h +1725 -0
  116. package/external/folly/folly/FBString.h +2888 -0
  117. package/external/folly/folly/FBVector.h +17 -0
  118. package/external/folly/folly/File.cpp +180 -0
  119. package/external/folly/folly/File.h +177 -0
  120. package/external/folly/folly/FileUtil.cpp +378 -0
  121. package/external/folly/folly/FileUtil.h +332 -0
  122. package/external/folly/folly/Fingerprint.cpp +135 -0
  123. package/external/folly/folly/Fingerprint.h +289 -0
  124. package/external/folly/folly/FixedString.h +2965 -0
  125. package/external/folly/folly/FollyMemcpy.cpp +30 -0
  126. package/external/folly/folly/FollyMemcpy.h +23 -0
  127. package/external/folly/folly/FollyMemset.cpp +29 -0
  128. package/external/folly/folly/FollyMemset.h +25 -0
  129. package/external/folly/folly/Format-inl.h +1152 -0
  130. package/external/folly/folly/Format.cpp +429 -0
  131. package/external/folly/folly/Format.h +463 -0
  132. package/external/folly/folly/FormatArg.h +285 -0
  133. package/external/folly/folly/FormatTraits.h +65 -0
  134. package/external/folly/folly/Function.h +1159 -0
  135. package/external/folly/folly/GLog.h +85 -0
  136. package/external/folly/folly/GroupVarint.cpp +153 -0
  137. package/external/folly/folly/GroupVarint.h +630 -0
  138. package/external/folly/folly/Hash.h +20 -0
  139. package/external/folly/folly/IPAddress.cpp +490 -0
  140. package/external/folly/folly/IPAddress.h +667 -0
  141. package/external/folly/folly/IPAddressException.h +82 -0
  142. package/external/folly/folly/IPAddressV4.cpp +305 -0
  143. package/external/folly/folly/IPAddressV4.h +495 -0
  144. package/external/folly/folly/IPAddressV6.cpp +541 -0
  145. package/external/folly/folly/IPAddressV6.h +627 -0
  146. package/external/folly/folly/Indestructible.h +164 -0
  147. package/external/folly/folly/IndexedMemPool.h +550 -0
  148. package/external/folly/folly/IntrusiveList.h +17 -0
  149. package/external/folly/folly/Lazy.h +142 -0
  150. package/external/folly/folly/Likely.h +76 -0
  151. package/external/folly/folly/MPMCPipeline.h +280 -0
  152. package/external/folly/folly/MPMCQueue.h +1556 -0
  153. package/external/folly/folly/MacAddress.cpp +188 -0
  154. package/external/folly/folly/MacAddress.h +260 -0
  155. package/external/folly/folly/MapUtil.h +17 -0
  156. package/external/folly/folly/Math.h +258 -0
  157. package/external/folly/folly/MaybeManagedPtr.h +120 -0
  158. package/external/folly/folly/Memory.h +900 -0
  159. package/external/folly/folly/MicroLock.cpp +76 -0
  160. package/external/folly/folly/MicroLock.h +354 -0
  161. package/external/folly/folly/MicroSpinLock.h +17 -0
  162. package/external/folly/folly/MoveWrapper.h +76 -0
  163. package/external/folly/folly/ObserverContainer.h +1026 -0
  164. package/external/folly/folly/Optional.h +743 -0
  165. package/external/folly/folly/Overload.h +325 -0
  166. package/external/folly/folly/PackedSyncPtr.h +147 -0
  167. package/external/folly/folly/Padded.h +464 -0
  168. package/external/folly/folly/Poly-inl.h +230 -0
  169. package/external/folly/folly/Poly.h +1095 -0
  170. package/external/folly/folly/PolyException.h +43 -0
  171. package/external/folly/folly/Portability.h +644 -0
  172. package/external/folly/folly/Preprocessor.h +236 -0
  173. package/external/folly/folly/ProducerConsumerQueue.h +182 -0
  174. package/external/folly/folly/RWSpinLock.h +17 -0
  175. package/external/folly/folly/Random-inl.h +86 -0
  176. package/external/folly/folly/Random.cpp +184 -0
  177. package/external/folly/folly/Random.h +434 -0
  178. package/external/folly/folly/Range.h +1772 -0
  179. package/external/folly/folly/Replaceable.h +636 -0
  180. package/external/folly/folly/ScopeGuard.cpp +29 -0
  181. package/external/folly/folly/ScopeGuard.h +420 -0
  182. package/external/folly/folly/SharedMutex.cpp +81 -0
  183. package/external/folly/folly/SharedMutex.h +1751 -0
  184. package/external/folly/folly/Singleton-inl.h +332 -0
  185. package/external/folly/folly/Singleton.cpp +512 -0
  186. package/external/folly/folly/Singleton.h +891 -0
  187. package/external/folly/folly/SingletonThreadLocal.cpp +53 -0
  188. package/external/folly/folly/SingletonThreadLocal.h +263 -0
  189. package/external/folly/folly/SocketAddress.cpp +786 -0
  190. package/external/folly/folly/SocketAddress.h +768 -0
  191. package/external/folly/folly/SpinLock.h +55 -0
  192. package/external/folly/folly/String-inl.h +668 -0
  193. package/external/folly/folly/String.cpp +777 -0
  194. package/external/folly/folly/String.h +767 -0
  195. package/external/folly/folly/Subprocess.cpp +1142 -0
  196. package/external/folly/folly/Subprocess.h +1055 -0
  197. package/external/folly/folly/Synchronized.h +1833 -0
  198. package/external/folly/folly/SynchronizedPtr.h +106 -0
  199. package/external/folly/folly/ThreadCachedInt.h +175 -0
  200. package/external/folly/folly/ThreadLocal.h +478 -0
  201. package/external/folly/folly/TimeoutQueue.cpp +78 -0
  202. package/external/folly/folly/TimeoutQueue.h +123 -0
  203. package/external/folly/folly/TokenBucket.h +673 -0
  204. package/external/folly/folly/Traits.h +1442 -0
  205. package/external/folly/folly/Try-inl.h +372 -0
  206. package/external/folly/folly/Try.cpp +23 -0
  207. package/external/folly/folly/Try.h +728 -0
  208. package/external/folly/folly/UTF8String.h +56 -0
  209. package/external/folly/folly/Unicode.cpp +201 -0
  210. package/external/folly/folly/Unicode.h +94 -0
  211. package/external/folly/folly/Unit.h +65 -0
  212. package/external/folly/folly/Uri-inl.h +101 -0
  213. package/external/folly/folly/Uri.cpp +190 -0
  214. package/external/folly/folly/Uri.h +142 -0
  215. package/external/folly/folly/Utility.h +932 -0
  216. package/external/folly/folly/VERSION +1 -0
  217. package/external/folly/folly/Varint.h +230 -0
  218. package/external/folly/folly/VirtualExecutor.h +17 -0
  219. package/external/folly/folly/algorithm/simd/BUCK +47 -0
  220. package/external/folly/folly/algorithm/simd/Contains.cpp +42 -0
  221. package/external/folly/folly/algorithm/simd/Contains.h +116 -0
  222. package/external/folly/folly/algorithm/simd/FindFixed.h +301 -0
  223. package/external/folly/folly/algorithm/simd/Ignore.h +52 -0
  224. package/external/folly/folly/algorithm/simd/Movemask.h +207 -0
  225. package/external/folly/folly/algorithm/simd/detail/BUCK +70 -0
  226. package/external/folly/folly/algorithm/simd/detail/ContainsImpl.h +91 -0
  227. package/external/folly/folly/algorithm/simd/detail/SimdAnyOf.h +83 -0
  228. package/external/folly/folly/algorithm/simd/detail/SimdForEach.h +209 -0
  229. package/external/folly/folly/algorithm/simd/detail/SimdPlatform.h +445 -0
  230. package/external/folly/folly/algorithm/simd/detail/Traits.h +125 -0
  231. package/external/folly/folly/algorithm/simd/detail/UnrollUtils.h +126 -0
  232. package/external/folly/folly/base64.h +264 -0
  233. package/external/folly/folly/chrono/BUCK +29 -0
  234. package/external/folly/folly/chrono/Clock.h +65 -0
  235. package/external/folly/folly/chrono/Conv.h +712 -0
  236. package/external/folly/folly/chrono/test/BUCK +26 -0
  237. package/external/folly/folly/chrono/test/ClockTest.cpp +68 -0
  238. package/external/folly/folly/chrono/test/ConvTest.cpp +652 -0
  239. package/external/folly/folly/concurrency/AtomicSharedPtr.h +387 -0
  240. package/external/folly/folly/concurrency/BUCK +170 -0
  241. package/external/folly/folly/concurrency/CacheLocality.h +460 -0
  242. package/external/folly/folly/concurrency/ConcurrentHashMap.h +822 -0
  243. package/external/folly/folly/concurrency/CoreCachedSharedPtr.h +232 -0
  244. package/external/folly/folly/concurrency/DeadlockDetector.cpp +27 -0
  245. package/external/folly/folly/concurrency/DeadlockDetector.h +44 -0
  246. package/external/folly/folly/concurrency/DynamicBoundedQueue.h +751 -0
  247. package/external/folly/folly/concurrency/PriorityUnboundedQueueSet.h +207 -0
  248. package/external/folly/folly/concurrency/ProcessLocalUniqueId.cpp +46 -0
  249. package/external/folly/folly/concurrency/ProcessLocalUniqueId.h +38 -0
  250. package/external/folly/folly/concurrency/SingletonRelaxedCounter.h +325 -0
  251. package/external/folly/folly/concurrency/ThreadCachedSynchronized.h +227 -0
  252. package/external/folly/folly/concurrency/UnboundedQueue.h +891 -0
  253. package/external/folly/folly/concurrency/container/BUCK +77 -0
  254. package/external/folly/folly/concurrency/container/FlatCombiningPriorityQueue.h +426 -0
  255. package/external/folly/folly/concurrency/container/LockFreeRingBuffer.h +306 -0
  256. package/external/folly/folly/concurrency/container/RelaxedConcurrentPriorityQueue.h +1212 -0
  257. package/external/folly/folly/concurrency/container/SingleWriterFixedHashMap.h +322 -0
  258. package/external/folly/folly/concurrency/container/atomic_grow_array.h +564 -0
  259. package/external/folly/folly/concurrency/container/test/BUCK +75 -0
  260. package/external/folly/folly/concurrency/container/test/FlatCombiningPriorityQueueTest.cpp +570 -0
  261. package/external/folly/folly/concurrency/container/test/LockFreeRingBufferTest.cpp +276 -0
  262. package/external/folly/folly/concurrency/container/test/RelaxedConcurrentPriorityQueueTest.cpp +1570 -0
  263. package/external/folly/folly/concurrency/container/test/SingleWriterFixedHashMapTest.cpp +401 -0
  264. package/external/folly/folly/concurrency/container/test/atomic_grow_array_test.cpp +187 -0
  265. package/external/folly/folly/concurrency/detail/AtomicSharedPtr-detail.h +212 -0
  266. package/external/folly/folly/concurrency/detail/ConcurrentHashMap-detail.h +1911 -0
  267. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp +43 -0
  268. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.h +190 -0
  269. package/external/folly/folly/concurrency/memory/BUCK +53 -0
  270. package/external/folly/folly/concurrency/memory/PrimaryPtr.h +338 -0
  271. package/external/folly/folly/concurrency/memory/ReadMostlySharedPtr.h +511 -0
  272. package/external/folly/folly/concurrency/memory/TLRefCount.h +228 -0
  273. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrBenchmark.cpp +56 -0
  274. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrTest.cpp +454 -0
  275. package/external/folly/folly/concurrency/memory/test/BUCK +95 -0
  276. package/external/folly/folly/concurrency/memory/test/PrimaryPtrTest.cpp +303 -0
  277. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrBenchmark.cpp +138 -0
  278. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrStressTest.cpp +75 -0
  279. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrTest.cpp +378 -0
  280. package/external/folly/folly/concurrency/memory/test/RefCountBenchmark.cpp +90 -0
  281. package/external/folly/folly/concurrency/memory/test/RefCountTest.cpp +168 -0
  282. package/external/folly/folly/concurrency/test/AtomicSharedPtrCounted.h +156 -0
  283. package/external/folly/folly/concurrency/test/AtomicSharedPtrPerformance.cpp +255 -0
  284. package/external/folly/folly/concurrency/test/AtomicSharedPtrTest.cpp +257 -0
  285. package/external/folly/folly/concurrency/test/BUCK +229 -0
  286. package/external/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp +392 -0
  287. package/external/folly/folly/concurrency/test/CacheLocalityTest.cpp +1229 -0
  288. package/external/folly/folly/concurrency/test/ConcurrentHashMapBench.cpp +260 -0
  289. package/external/folly/folly/concurrency/test/ConcurrentHashMapTest.cpp +1242 -0
  290. package/external/folly/folly/concurrency/test/CoreCachedSharedPtrTest.cpp +408 -0
  291. package/external/folly/folly/concurrency/test/DynamicBoundedQueueTest.cpp +984 -0
  292. package/external/folly/folly/concurrency/test/PriorityUnboundedQueueSetTest.cpp +73 -0
  293. package/external/folly/folly/concurrency/test/ProcessLocalUniqueIdTest.cpp +66 -0
  294. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterBench.cpp +101 -0
  295. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterTest.cpp +185 -0
  296. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedBench.cpp +76 -0
  297. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedTest.cpp +93 -0
  298. package/external/folly/folly/concurrency/test/UnboundedQueueTest.cpp +1302 -0
  299. package/external/folly/folly/container/Access.h +57 -0
  300. package/external/folly/folly/container/Array.h +87 -0
  301. package/external/folly/folly/container/BUCK +353 -0
  302. package/external/folly/folly/container/BitIterator.h +203 -0
  303. package/external/folly/folly/container/Enumerate.h +162 -0
  304. package/external/folly/folly/container/EvictingCacheMap.h +730 -0
  305. package/external/folly/folly/container/F14.md +300 -0
  306. package/external/folly/folly/container/F14Map-fwd.h +113 -0
  307. package/external/folly/folly/container/F14Map.h +2108 -0
  308. package/external/folly/folly/container/F14Set-fwd.h +95 -0
  309. package/external/folly/folly/container/F14Set.h +1603 -0
  310. package/external/folly/folly/container/FBVector.h +1711 -0
  311. package/external/folly/folly/container/Foreach-inl.h +316 -0
  312. package/external/folly/folly/container/Foreach.h +209 -0
  313. package/external/folly/folly/container/HeterogeneousAccess-fwd.h +33 -0
  314. package/external/folly/folly/container/HeterogeneousAccess.h +171 -0
  315. package/external/folly/folly/container/IntrusiveHeap.h +268 -0
  316. package/external/folly/folly/container/IntrusiveList.h +131 -0
  317. package/external/folly/folly/container/Iterator.h +843 -0
  318. package/external/folly/folly/container/MapUtil.h +376 -0
  319. package/external/folly/folly/container/Merge.h +90 -0
  320. package/external/folly/folly/container/RegexMatchCache.cpp +521 -0
  321. package/external/folly/folly/container/RegexMatchCache.h +699 -0
  322. package/external/folly/folly/container/Reserve.h +109 -0
  323. package/external/folly/folly/container/SparseByteSet.h +123 -0
  324. package/external/folly/folly/container/View.h +81 -0
  325. package/external/folly/folly/container/WeightedEvictingCacheMap.h +651 -0
  326. package/external/folly/folly/container/detail/BUCK +115 -0
  327. package/external/folly/folly/container/detail/BitIteratorDetail.h +87 -0
  328. package/external/folly/folly/container/detail/F14Defaults.h +34 -0
  329. package/external/folly/folly/container/detail/F14IntrinsicsAvailability.h +67 -0
  330. package/external/folly/folly/container/detail/F14MapFallback.h +717 -0
  331. package/external/folly/folly/container/detail/F14Mask.h +235 -0
  332. package/external/folly/folly/container/detail/F14Policy.h +1523 -0
  333. package/external/folly/folly/container/detail/F14SetFallback.h +528 -0
  334. package/external/folly/folly/container/detail/F14Table.cpp +71 -0
  335. package/external/folly/folly/container/detail/F14Table.h +2680 -0
  336. package/external/folly/folly/container/detail/Util.h +303 -0
  337. package/external/folly/folly/container/detail/tape_detail.h +135 -0
  338. package/external/folly/folly/container/detail/test/BUCK +14 -0
  339. package/external/folly/folly/container/detail/test/F14DetailTest.cpp +47 -0
  340. package/external/folly/folly/container/heap_vector_types.h +1683 -0
  341. package/external/folly/folly/container/range_traits.h +81 -0
  342. package/external/folly/folly/container/small_vector.h +1476 -0
  343. package/external/folly/folly/container/sorted_vector_types.h +1652 -0
  344. package/external/folly/folly/container/span.h +408 -0
  345. package/external/folly/folly/container/tape.h +608 -0
  346. package/external/folly/folly/container/test/.clang-tidy +12 -0
  347. package/external/folly/folly/container/test/AccessTest.cpp +138 -0
  348. package/external/folly/folly/container/test/ArrayTest.cpp +84 -0
  349. package/external/folly/folly/container/test/BUCK +568 -0
  350. package/external/folly/folly/container/test/BitIteratorBench.cpp +112 -0
  351. package/external/folly/folly/container/test/BitIteratorTest.cpp +109 -0
  352. package/external/folly/folly/container/test/EnumerateTest.cpp +294 -0
  353. package/external/folly/folly/container/test/EvictingCacheMapBench.cpp +80 -0
  354. package/external/folly/folly/container/test/EvictingCacheMapTest.cpp +842 -0
  355. package/external/folly/folly/container/test/F14AsanSupportTest.cpp +143 -0
  356. package/external/folly/folly/container/test/F14FwdTest.cpp +37 -0
  357. package/external/folly/folly/container/test/F14InterprocessTest.cpp +404 -0
  358. package/external/folly/folly/container/test/F14MapTest.cpp +2543 -0
  359. package/external/folly/folly/container/test/F14PolicyTest.cpp +49 -0
  360. package/external/folly/folly/container/test/F14SetTest.cpp +1738 -0
  361. package/external/folly/folly/container/test/F14SmallOverheads.cpp +215 -0
  362. package/external/folly/folly/container/test/F14TestUtil.h +117 -0
  363. package/external/folly/folly/container/test/FBVectorBenchmark.cpp +380 -0
  364. package/external/folly/folly/container/test/FBVectorBenchmarks.cpp.h +100 -0
  365. package/external/folly/folly/container/test/FBVectorTest.cpp +326 -0
  366. package/external/folly/folly/container/test/FBVectorTests.cpp.h +304 -0
  367. package/external/folly/folly/container/test/ForeachBenchmark.cpp +388 -0
  368. package/external/folly/folly/container/test/ForeachTest.cpp +338 -0
  369. package/external/folly/folly/container/test/HashMapsBench.cpp +458 -0
  370. package/external/folly/folly/container/test/HeterogeneousAccessTest.cpp +242 -0
  371. package/external/folly/folly/container/test/IntrusiveHeapTest.cpp +262 -0
  372. package/external/folly/folly/container/test/IteratorTest.cpp +989 -0
  373. package/external/folly/folly/container/test/MapUtilTest.cpp +365 -0
  374. package/external/folly/folly/container/test/MergeTest.cpp +66 -0
  375. package/external/folly/folly/container/test/RegexMatchCacheTest.cpp +634 -0
  376. package/external/folly/folly/container/test/ReserveTest.cpp +173 -0
  377. package/external/folly/folly/container/test/SparseByteSetBenchmark.cpp +153 -0
  378. package/external/folly/folly/container/test/SparseByteSetTest.cpp +117 -0
  379. package/external/folly/folly/container/test/TrackingTypes.h +584 -0
  380. package/external/folly/folly/container/test/UtilTest.cpp +609 -0
  381. package/external/folly/folly/container/test/WeightedEvictingCacheMapTest.cpp +800 -0
  382. package/external/folly/folly/container/test/heap_vector_types_test.cpp +1774 -0
  383. package/external/folly/folly/container/test/range_traits_test.cpp +59 -0
  384. package/external/folly/folly/container/test/small_vector_test.cpp +1571 -0
  385. package/external/folly/folly/container/test/sorted_vector_test.cpp +1589 -0
  386. package/external/folly/folly/container/test/span_test.cpp +520 -0
  387. package/external/folly/folly/container/test/tape_bench.cpp +200 -0
  388. package/external/folly/folly/container/test/tape_test.cpp +590 -0
  389. package/external/folly/folly/defs.bzl +238 -0
  390. package/external/folly/folly/detail/AsyncTrace.cpp +36 -0
  391. package/external/folly/folly/detail/AsyncTrace.h +44 -0
  392. package/external/folly/folly/detail/AtomicHashUtils.h +42 -0
  393. package/external/folly/folly/detail/AtomicUnorderedMapUtils.h +80 -0
  394. package/external/folly/folly/detail/BUCK +406 -0
  395. package/external/folly/folly/detail/DiscriminatedPtrDetail.h +172 -0
  396. package/external/folly/folly/detail/FileUtilDetail.cpp +63 -0
  397. package/external/folly/folly/detail/FileUtilDetail.h +85 -0
  398. package/external/folly/folly/detail/FileUtilVectorDetail.h +81 -0
  399. package/external/folly/folly/detail/FingerprintPolynomial.h +132 -0
  400. package/external/folly/folly/detail/Futex-inl.h +123 -0
  401. package/external/folly/folly/detail/Futex.cpp +273 -0
  402. package/external/folly/folly/detail/Futex.h +109 -0
  403. package/external/folly/folly/detail/GroupVarintDetail.h +101 -0
  404. package/external/folly/folly/detail/IPAddress.cpp +37 -0
  405. package/external/folly/folly/detail/IPAddress.h +57 -0
  406. package/external/folly/folly/detail/IPAddressSource.h +278 -0
  407. package/external/folly/folly/detail/Iterators.h +156 -0
  408. package/external/folly/folly/detail/MPMCPipelineDetail.h +122 -0
  409. package/external/folly/folly/detail/MemoryIdler.cpp +233 -0
  410. package/external/folly/folly/detail/MemoryIdler.h +216 -0
  411. package/external/folly/folly/detail/PerfScoped.cpp +112 -0
  412. package/external/folly/folly/detail/PerfScoped.h +70 -0
  413. package/external/folly/folly/detail/PolyDetail.h +921 -0
  414. package/external/folly/folly/detail/RangeCommon.cpp +55 -0
  415. package/external/folly/folly/detail/RangeCommon.h +93 -0
  416. package/external/folly/folly/detail/RangeSse42.cpp +198 -0
  417. package/external/folly/folly/detail/RangeSse42.h +30 -0
  418. package/external/folly/folly/detail/SimpleSimdStringUtils.cpp +31 -0
  419. package/external/folly/folly/detail/SimpleSimdStringUtils.h +27 -0
  420. package/external/folly/folly/detail/SimpleSimdStringUtilsImpl.h +63 -0
  421. package/external/folly/folly/detail/Singleton.h +34 -0
  422. package/external/folly/folly/detail/SlowFingerprint.h +90 -0
  423. package/external/folly/folly/detail/SocketFastOpen.cpp +175 -0
  424. package/external/folly/folly/detail/SocketFastOpen.h +89 -0
  425. package/external/folly/folly/detail/SplitStringSimd.cpp +84 -0
  426. package/external/folly/folly/detail/SplitStringSimd.h +151 -0
  427. package/external/folly/folly/detail/SplitStringSimdImpl.h +149 -0
  428. package/external/folly/folly/detail/Sse.cpp +35 -0
  429. package/external/folly/folly/detail/Sse.h +45 -0
  430. package/external/folly/folly/detail/StaticSingletonManager.cpp +119 -0
  431. package/external/folly/folly/detail/StaticSingletonManager.h +298 -0
  432. package/external/folly/folly/detail/ThreadLocalDetail.cpp +492 -0
  433. package/external/folly/folly/detail/ThreadLocalDetail.h +800 -0
  434. package/external/folly/folly/detail/TrapOnAvx512.cpp +41 -0
  435. package/external/folly/folly/detail/TrapOnAvx512.h +21 -0
  436. package/external/folly/folly/detail/TurnSequencer.h +295 -0
  437. package/external/folly/folly/detail/TypeList.h +551 -0
  438. package/external/folly/folly/detail/UniqueInstance.cpp +136 -0
  439. package/external/folly/folly/detail/UniqueInstance.h +68 -0
  440. package/external/folly/folly/detail/base64_detail/BUCK +102 -0
  441. package/external/folly/folly/detail/base64_detail/Base64Api.cpp +40 -0
  442. package/external/folly/folly/detail/base64_detail/Base64Api.h +101 -0
  443. package/external/folly/folly/detail/base64_detail/Base64Common.h +80 -0
  444. package/external/folly/folly/detail/base64_detail/Base64Constants.h +79 -0
  445. package/external/folly/folly/detail/base64_detail/Base64HiddenConstants.h +129 -0
  446. package/external/folly/folly/detail/base64_detail/Base64SWAR.cpp +161 -0
  447. package/external/folly/folly/detail/base64_detail/Base64SWAR.h +32 -0
  448. package/external/folly/folly/detail/base64_detail/Base64Scalar.h +262 -0
  449. package/external/folly/folly/detail/base64_detail/Base64Simd.h +102 -0
  450. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.cpp +42 -0
  451. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.h +33 -0
  452. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2_Platform.h +167 -0
  453. package/external/folly/folly/detail/base64_detail/README.md +392 -0
  454. package/external/folly/folly/detail/base64_detail/tests/BUCK +36 -0
  455. package/external/folly/folly/detail/base64_detail/tests/Base64AgainstScalarTest.cpp +141 -0
  456. package/external/folly/folly/detail/base64_detail/tests/Base64PlatformTest.cpp +273 -0
  457. package/external/folly/folly/detail/base64_detail/tests/Base64SpecialCasesTest.cpp +555 -0
  458. package/external/folly/folly/detail/test/AsyncTraceTest.cpp +43 -0
  459. package/external/folly/folly/detail/test/BUCK +118 -0
  460. package/external/folly/folly/detail/test/FileUtilDetailTest.cpp +56 -0
  461. package/external/folly/folly/detail/test/PerfScopedTest.cpp +107 -0
  462. package/external/folly/folly/detail/test/SimpleSimdStringUtilsTest.cpp +92 -0
  463. package/external/folly/folly/detail/test/SplitStringSimdTest.cpp +242 -0
  464. package/external/folly/folly/detail/test/StaticSingletonManagerTest.cpp +121 -0
  465. package/external/folly/folly/detail/test/ThreadLocalBenchmark.cpp +116 -0
  466. package/external/folly/folly/detail/test/ThreadLocalDetailTest.cpp +194 -0
  467. package/external/folly/folly/detail/test/TrapOnAvx512TestNegative.cpp +29 -0
  468. package/external/folly/folly/detail/test/UniqueInstanceTest.cpp +60 -0
  469. package/external/folly/folly/detail/thread_local_globals.cpp +69 -0
  470. package/external/folly/folly/detail/thread_local_globals.h +36 -0
  471. package/external/folly/folly/docs/AtomicHashMap.md +134 -0
  472. package/external/folly/folly/docs/Benchmark.md +310 -0
  473. package/external/folly/folly/docs/Conv.md +291 -0
  474. package/external/folly/folly/docs/Dynamic.md +220 -0
  475. package/external/folly/folly/docs/DynamicConverter.md +71 -0
  476. package/external/folly/folly/docs/Executors.md +63 -0
  477. package/external/folly/folly/docs/FBString.md +46 -0
  478. package/external/folly/folly/docs/FBVector.md +200 -0
  479. package/external/folly/folly/docs/Fbvector--graphical_solutions.png +0 -0
  480. package/external/folly/folly/docs/Format.md +177 -0
  481. package/external/folly/folly/docs/Function.md +92 -0
  482. package/external/folly/folly/docs/Futures.md +263 -0
  483. package/external/folly/folly/docs/GroupVarint.md +46 -0
  484. package/external/folly/folly/docs/Histogram.md +104 -0
  485. package/external/folly/folly/docs/MapUtils.md +80 -0
  486. package/external/folly/folly/docs/Overview.md +263 -0
  487. package/external/folly/folly/docs/PackedSyncPtr.md +77 -0
  488. package/external/folly/folly/docs/Poly.md +500 -0
  489. package/external/folly/folly/docs/ProducerConsumerQueue.md +82 -0
  490. package/external/folly/folly/docs/Rcu.md +218 -0
  491. package/external/folly/folly/docs/SmallLocks.md +24 -0
  492. package/external/folly/folly/docs/Synchronized.md +793 -0
  493. package/external/folly/folly/docs/ThreadCachedInt.md +98 -0
  494. package/external/folly/folly/docs/ThreadLocal.md +105 -0
  495. package/external/folly/folly/docs/Traits.md +161 -0
  496. package/external/folly/folly/docs/small_vector.md +64 -0
  497. package/external/folly/folly/docs/style.css +23 -0
  498. package/external/folly/folly/dynamic-inl.h +17 -0
  499. package/external/folly/folly/dynamic.h +17 -0
  500. package/external/folly/folly/folly_extended_library.bzl +28 -0
  501. package/external/folly/folly/functional/ApplyTuple.h +204 -0
  502. package/external/folly/folly/functional/BUCK +57 -0
  503. package/external/folly/folly/functional/Invoke.h +880 -0
  504. package/external/folly/folly/functional/Partial.h +130 -0
  505. package/external/folly/folly/functional/protocol.h +203 -0
  506. package/external/folly/folly/functional/test/ApplyTupleTest.cpp +549 -0
  507. package/external/folly/folly/functional/test/BUCK +57 -0
  508. package/external/folly/folly/functional/test/InvokeTest.cpp +483 -0
  509. package/external/folly/folly/functional/test/PartialTest.cpp +141 -0
  510. package/external/folly/folly/functional/test/protocol_test.cpp +177 -0
  511. package/external/folly/folly/functional/test/traits_test.cpp +551 -0
  512. package/external/folly/folly/functional/traits.h +675 -0
  513. package/external/folly/folly/hash/BUCK +86 -0
  514. package/external/folly/folly/hash/Checksum.cpp +275 -0
  515. package/external/folly/folly/hash/Checksum.h +94 -0
  516. package/external/folly/folly/hash/FarmHash.h +46 -0
  517. package/external/folly/folly/hash/Hash.h +1045 -0
  518. package/external/folly/folly/hash/MurmurHash.h +86 -0
  519. package/external/folly/folly/hash/SpookyHashV1.cpp +391 -0
  520. package/external/folly/folly/hash/SpookyHashV1.h +307 -0
  521. package/external/folly/folly/hash/SpookyHashV2.cpp +392 -0
  522. package/external/folly/folly/hash/SpookyHashV2.h +339 -0
  523. package/external/folly/folly/hash/detail/BUCK +26 -0
  524. package/external/folly/folly/hash/detail/ChecksumDetail.cpp +296 -0
  525. package/external/folly/folly/hash/detail/ChecksumDetail.h +137 -0
  526. package/external/folly/folly/hash/detail/Crc32CombineDetail.cpp +191 -0
  527. package/external/folly/folly/hash/detail/Crc32cDetail.cpp +303 -0
  528. package/external/folly/folly/hash/test/BUCK +132 -0
  529. package/external/folly/folly/hash/test/ChecksumBenchmark.cpp +91 -0
  530. package/external/folly/folly/hash/test/ChecksumTest.cpp +587 -0
  531. package/external/folly/folly/hash/test/FarmHashTest.cpp +41 -0
  532. package/external/folly/folly/hash/test/HashBenchmark.cpp +238 -0
  533. package/external/folly/folly/hash/test/HashTest.cpp +997 -0
  534. package/external/folly/folly/hash/test/MurmurHashTest.cpp +76 -0
  535. package/external/folly/folly/hash/test/SpookyHashV1Test.cpp +559 -0
  536. package/external/folly/folly/hash/test/SpookyHashV2Test.cpp +549 -0
  537. package/external/folly/folly/hash/test/traits_test.cpp +69 -0
  538. package/external/folly/folly/hash/traits.h +115 -0
  539. package/external/folly/folly/json/BUCK +155 -0
  540. package/external/folly/folly/json/DynamicConverter.h +464 -0
  541. package/external/folly/folly/json/DynamicParser-inl.h +316 -0
  542. package/external/folly/folly/json/DynamicParser.cpp +198 -0
  543. package/external/folly/folly/json/DynamicParser.h +394 -0
  544. package/external/folly/folly/json/JSONSchema.cpp +1030 -0
  545. package/external/folly/folly/json/JSONSchema.h +73 -0
  546. package/external/folly/folly/json/JsonMockUtil.h +73 -0
  547. package/external/folly/folly/json/JsonTestUtil.cpp +167 -0
  548. package/external/folly/folly/json/JsonTestUtil.h +88 -0
  549. package/external/folly/folly/json/bser/BUCK +24 -0
  550. package/external/folly/folly/json/bser/Bser.h +107 -0
  551. package/external/folly/folly/json/bser/Dump.cpp +253 -0
  552. package/external/folly/folly/json/bser/Load.cpp +246 -0
  553. package/external/folly/folly/json/bser/test/BUCK +14 -0
  554. package/external/folly/folly/json/bser/test/BserTest.cpp +149 -0
  555. package/external/folly/folly/json/dynamic.cpp +552 -0
  556. package/external/folly/folly/json/dynamic.h +1346 -0
  557. package/external/folly/folly/json/json.h +238 -0
  558. package/external/folly/folly/json/json_patch.cpp +325 -0
  559. package/external/folly/folly/json/json_patch.h +126 -0
  560. package/external/folly/folly/json/json_pointer.cpp +114 -0
  561. package/external/folly/folly/json/json_pointer.h +87 -0
  562. package/external/folly/folly/json/test/BUCK +147 -0
  563. package/external/folly/folly/json/test/DynamicBenchmark.cpp +146 -0
  564. package/external/folly/folly/json/test/DynamicConverterTest.cpp +518 -0
  565. package/external/folly/folly/json/test/DynamicOtherTest.cpp +344 -0
  566. package/external/folly/folly/json/test/DynamicParserTest.cpp +443 -0
  567. package/external/folly/folly/json/test/DynamicTest.cpp +1647 -0
  568. package/external/folly/folly/json/test/JSONSchemaTest.cpp +450 -0
  569. package/external/folly/folly/json/test/JsonBenchmark.cpp +264 -0
  570. package/external/folly/folly/json/test/JsonOtherTest.cpp +51 -0
  571. package/external/folly/folly/json/test/JsonTest.cpp +1153 -0
  572. package/external/folly/folly/json/test/JsonTestUtilTest.cpp +97 -0
  573. package/external/folly/folly/json/test/json_patch_test.cpp +361 -0
  574. package/external/folly/folly/json/test/json_pointer_test.cpp +58 -0
  575. package/external/folly/folly/json/tool/BUCK +13 -0
  576. package/external/folly/folly/json/tool/JSONSchemaTester.cpp +58 -0
  577. package/external/folly/folly/json.h +17 -0
  578. package/external/folly/folly/json_patch.h +17 -0
  579. package/external/folly/folly/json_pointer.h +17 -0
  580. package/external/folly/folly/lang/Access.h +29 -0
  581. package/external/folly/folly/lang/Align.h +240 -0
  582. package/external/folly/folly/lang/Aligned.h +92 -0
  583. package/external/folly/folly/lang/Assume.h +82 -0
  584. package/external/folly/folly/lang/BUCK +287 -0
  585. package/external/folly/folly/lang/Badge.h +108 -0
  586. package/external/folly/folly/lang/Bits.h +570 -0
  587. package/external/folly/folly/lang/BitsClass.h +312 -0
  588. package/external/folly/folly/lang/Builtin.h +74 -0
  589. package/external/folly/folly/lang/CArray.h +34 -0
  590. package/external/folly/folly/lang/CString.cpp +86 -0
  591. package/external/folly/folly/lang/CString.h +55 -0
  592. package/external/folly/folly/lang/Cast.h +51 -0
  593. package/external/folly/folly/lang/CheckedMath.h +253 -0
  594. package/external/folly/folly/lang/CustomizationPoint.h +58 -0
  595. package/external/folly/folly/lang/Exception.cpp +822 -0
  596. package/external/folly/folly/lang/Exception.h +716 -0
  597. package/external/folly/folly/lang/Extern.h +55 -0
  598. package/external/folly/folly/lang/Hint-inl.h +144 -0
  599. package/external/folly/folly/lang/Hint.h +238 -0
  600. package/external/folly/folly/lang/Keep.h +98 -0
  601. package/external/folly/folly/lang/New.h +124 -0
  602. package/external/folly/folly/lang/Ordering.h +140 -0
  603. package/external/folly/folly/lang/Pretty.h +159 -0
  604. package/external/folly/folly/lang/PropagateConst.h +413 -0
  605. package/external/folly/folly/lang/RValueReferenceWrapper.h +152 -0
  606. package/external/folly/folly/lang/SafeAssert.cpp +589 -0
  607. package/external/folly/folly/lang/StaticConst.h +33 -0
  608. package/external/folly/folly/lang/Thunk.h +100 -0
  609. package/external/folly/folly/lang/TypeInfo.h +58 -0
  610. package/external/folly/folly/lang/UncaughtExceptions.cpp +17 -0
  611. package/external/folly/folly/lang/UncaughtExceptions.h +19 -0
  612. package/external/folly/folly/lang/test/AlignTest.cpp +87 -0
  613. package/external/folly/folly/lang/test/AlignedTest.cpp +130 -0
  614. package/external/folly/folly/lang/test/BUCK +258 -0
  615. package/external/folly/folly/lang/test/BadgeTest.cpp +89 -0
  616. package/external/folly/folly/lang/test/BitsBenchmark.cpp +164 -0
  617. package/external/folly/folly/lang/test/BitsClassBenchmark.cpp +122 -0
  618. package/external/folly/folly/lang/test/BitsClassTest.cpp +379 -0
  619. package/external/folly/folly/lang/test/BitsTest.cpp +577 -0
  620. package/external/folly/folly/lang/test/CStringTest.cpp +60 -0
  621. package/external/folly/folly/lang/test/CastTest.cpp +47 -0
  622. package/external/folly/folly/lang/test/CheckedMathTest.cpp +394 -0
  623. package/external/folly/folly/lang/test/ExceptionBench.cpp +427 -0
  624. package/external/folly/folly/lang/test/ExceptionTest.cpp +413 -0
  625. package/external/folly/folly/lang/test/ExternTest.cpp +39 -0
  626. package/external/folly/folly/lang/test/HintTest.cpp +100 -0
  627. package/external/folly/folly/lang/test/NewTest.cpp +38 -0
  628. package/external/folly/folly/lang/test/OrderingTest.cpp +105 -0
  629. package/external/folly/folly/lang/test/PrettyTest.cpp +44 -0
  630. package/external/folly/folly/lang/test/PropagateConstTest.cpp +356 -0
  631. package/external/folly/folly/lang/test/RValueReferenceWrapperTest.cpp +85 -0
  632. package/external/folly/folly/lang/test/SafeAssertTest.cpp +75 -0
  633. package/external/folly/folly/lang/test/ThunkTest.cpp +105 -0
  634. package/external/folly/folly/lang/test/ToAsciiBench.cpp +466 -0
  635. package/external/folly/folly/lang/test/ToAsciiTest.cpp +266 -0
  636. package/external/folly/folly/lang/test/TypeInfoTest.cpp +56 -0
  637. package/external/folly/folly/memcpy.S +292 -0
  638. package/external/folly/folly/memcpy_select_aarch64.cpp +145 -0
  639. package/external/folly/folly/memory/Arena-inl.h +83 -0
  640. package/external/folly/folly/memory/Arena.h +325 -0
  641. package/external/folly/folly/memory/BUCK +191 -0
  642. package/external/folly/folly/memory/JemallocHugePageAllocator.cpp +449 -0
  643. package/external/folly/folly/memory/JemallocHugePageAllocator.h +105 -0
  644. package/external/folly/folly/memory/JemallocHugePageAllocatorTest.cpp +341 -0
  645. package/external/folly/folly/memory/JemallocNodumpAllocator.cpp +176 -0
  646. package/external/folly/folly/memory/JemallocNodumpAllocator.h +119 -0
  647. package/external/folly/folly/memory/JemallocNodumpAllocatorTest.cpp +61 -0
  648. package/external/folly/folly/memory/MallctlHelper.cpp +37 -0
  649. package/external/folly/folly/memory/MallctlHelper.h +167 -0
  650. package/external/folly/folly/memory/Malloc.h +551 -0
  651. package/external/folly/folly/memory/MemoryResource.h +57 -0
  652. package/external/folly/folly/memory/ReentrantAllocator.cpp +162 -0
  653. package/external/folly/folly/memory/ReentrantAllocator.h +261 -0
  654. package/external/folly/folly/memory/SanitizeAddress.cpp +75 -0
  655. package/external/folly/folly/memory/SanitizeAddress.h +117 -0
  656. package/external/folly/folly/memory/SanitizeLeak.cpp +119 -0
  657. package/external/folly/folly/memory/SanitizeLeak.h +108 -0
  658. package/external/folly/folly/memory/ThreadCachedArena.cpp +53 -0
  659. package/external/folly/folly/memory/ThreadCachedArena.h +90 -0
  660. package/external/folly/folly/memory/UninitializedMemoryHacks.h +426 -0
  661. package/external/folly/folly/memory/detail/BUCK +10 -0
  662. package/external/folly/folly/memory/detail/MallocImpl.cpp +52 -0
  663. package/external/folly/folly/memory/detail/MallocImpl.h +97 -0
  664. package/external/folly/folly/memory/not_null-inl.h +522 -0
  665. package/external/folly/folly/memory/not_null.h +449 -0
  666. package/external/folly/folly/memory/test/ArenaTest.cpp +354 -0
  667. package/external/folly/folly/memory/test/BUCK +146 -0
  668. package/external/folly/folly/memory/test/MallctlHelperTest.cpp +169 -0
  669. package/external/folly/folly/memory/test/MallocBenchmark.cpp +91 -0
  670. package/external/folly/folly/memory/test/MallocTest.cpp +78 -0
  671. package/external/folly/folly/memory/test/MemoryResourceTest.cpp +31 -0
  672. package/external/folly/folly/memory/test/ReentrantAllocatorTest.cpp +144 -0
  673. package/external/folly/folly/memory/test/SanitizeAddressTest.cpp +67 -0
  674. package/external/folly/folly/memory/test/SanitizeLeakTest.cpp +139 -0
  675. package/external/folly/folly/memory/test/ThreadCachedArenaTest.cpp +276 -0
  676. package/external/folly/folly/memory/test/UninitializedMemoryHacksODR.cpp +21 -0
  677. package/external/folly/folly/memory/test/UninitializedMemoryHacksTest.cpp +327 -0
  678. package/external/folly/folly/memory/test/not_null_test.cpp +608 -0
  679. package/external/folly/folly/memset.S +245 -0
  680. package/external/folly/folly/memset_select_aarch64.cpp +72 -0
  681. package/external/folly/folly/portability/Asm.h +50 -0
  682. package/external/folly/folly/portability/Atomic.h +31 -0
  683. package/external/folly/folly/portability/BUCK +456 -0
  684. package/external/folly/folly/portability/Builtins.cpp +31 -0
  685. package/external/folly/folly/portability/Builtins.h +161 -0
  686. package/external/folly/folly/portability/Config.h +43 -0
  687. package/external/folly/folly/portability/Constexpr.h +145 -0
  688. package/external/folly/folly/portability/Dirent.cpp +140 -0
  689. package/external/folly/folly/portability/Dirent.h +41 -0
  690. package/external/folly/folly/portability/Event.h +44 -0
  691. package/external/folly/folly/portability/Fcntl.cpp +120 -0
  692. package/external/folly/folly/portability/Fcntl.h +67 -0
  693. package/external/folly/folly/portability/Filesystem.cpp +67 -0
  694. package/external/folly/folly/portability/Filesystem.h +114 -0
  695. package/external/folly/folly/portability/FmtCompile.h +40 -0
  696. package/external/folly/folly/portability/GFlags.h +139 -0
  697. package/external/folly/folly/portability/GMock.h +35 -0
  698. package/external/folly/folly/portability/GTest.h +35 -0
  699. package/external/folly/folly/portability/IOVec.h +34 -0
  700. package/external/folly/folly/portability/Libgen.cpp +59 -0
  701. package/external/folly/folly/portability/Libgen.h +29 -0
  702. package/external/folly/folly/portability/Libunwind.h +21 -0
  703. package/external/folly/folly/portability/Malloc.cpp +31 -0
  704. package/external/folly/folly/portability/Malloc.h +53 -0
  705. package/external/folly/folly/portability/Math.h +90 -0
  706. package/external/folly/folly/portability/Memory.h +26 -0
  707. package/external/folly/folly/portability/OpenSSL.cpp +17 -0
  708. package/external/folly/folly/portability/OpenSSL.h +102 -0
  709. package/external/folly/folly/portability/PThread.cpp +697 -0
  710. package/external/folly/folly/portability/PThread.h +148 -0
  711. package/external/folly/folly/portability/README.md +21 -0
  712. package/external/folly/folly/portability/Sched.cpp +41 -0
  713. package/external/folly/folly/portability/Sched.h +45 -0
  714. package/external/folly/folly/portability/Sockets.cpp +245 -0
  715. package/external/folly/folly/portability/Sockets.h +155 -0
  716. package/external/folly/folly/portability/SourceLocation.h +49 -0
  717. package/external/folly/folly/portability/Stdio.cpp +77 -0
  718. package/external/folly/folly/portability/Stdio.h +32 -0
  719. package/external/folly/folly/portability/Stdlib.cpp +172 -0
  720. package/external/folly/folly/portability/Stdlib.h +64 -0
  721. package/external/folly/folly/portability/String.cpp +53 -0
  722. package/external/folly/folly/portability/String.h +39 -0
  723. package/external/folly/folly/portability/SysFile.cpp +46 -0
  724. package/external/folly/folly/portability/SysFile.h +27 -0
  725. package/external/folly/folly/portability/SysMembarrier.cpp +104 -0
  726. package/external/folly/folly/portability/SysMembarrier.h +26 -0
  727. package/external/folly/folly/portability/SysMman.cpp +242 -0
  728. package/external/folly/folly/portability/SysMman.h +68 -0
  729. package/external/folly/folly/portability/SysResource.cpp +108 -0
  730. package/external/folly/folly/portability/SysResource.h +71 -0
  731. package/external/folly/folly/portability/SysStat.cpp +66 -0
  732. package/external/folly/folly/portability/SysStat.h +52 -0
  733. package/external/folly/folly/portability/SysSyscall.h +73 -0
  734. package/external/folly/folly/portability/SysTime.cpp +62 -0
  735. package/external/folly/folly/portability/SysTime.h +50 -0
  736. package/external/folly/folly/portability/SysTypes.h +44 -0
  737. package/external/folly/folly/portability/SysUio.cpp +179 -0
  738. package/external/folly/folly/portability/SysUio.h +51 -0
  739. package/external/folly/folly/portability/Syslog.h +39 -0
  740. package/external/folly/folly/portability/Time.cpp +357 -0
  741. package/external/folly/folly/portability/Time.h +74 -0
  742. package/external/folly/folly/portability/Unistd.h +111 -0
  743. package/external/folly/folly/portability/Windows.h +108 -0
  744. package/external/folly/folly/portability/openat2.c +30 -0
  745. package/external/folly/folly/portability/openat2.h +39 -0
  746. package/external/folly/folly/portability/test/BUCK +59 -0
  747. package/external/folly/folly/portability/test/ConstexprTest.cpp +102 -0
  748. package/external/folly/folly/portability/test/FilesystemTest.cpp +35 -0
  749. package/external/folly/folly/portability/test/LibgenTest.cpp +35 -0
  750. package/external/folly/folly/portability/test/OpenSSLPortabilityTest.cpp +108 -0
  751. package/external/folly/folly/portability/test/PThreadTest.cpp +80 -0
  752. package/external/folly/folly/portability/test/TimeTest.cpp +90 -0
  753. package/external/folly/folly/small_vector.h +17 -0
  754. package/external/folly/folly/somerge_defs.bzl +399 -0
  755. package/external/folly/folly/sorted_vector_types.h +17 -0
  756. package/external/folly/folly/stop_watch.h +317 -0
  757. package/external/folly/folly/synchronization/AsymmetricThreadFence.cpp +91 -0
  758. package/external/folly/folly/synchronization/AsymmetricThreadFence.h +60 -0
  759. package/external/folly/folly/synchronization/AtomicNotification-inl.h +146 -0
  760. package/external/folly/folly/synchronization/AtomicNotification.cpp +34 -0
  761. package/external/folly/folly/synchronization/AtomicNotification.h +117 -0
  762. package/external/folly/folly/synchronization/AtomicRef.h +181 -0
  763. package/external/folly/folly/synchronization/AtomicStruct.h +150 -0
  764. package/external/folly/folly/synchronization/AtomicUtil-inl.h +482 -0
  765. package/external/folly/folly/synchronization/AtomicUtil.h +179 -0
  766. package/external/folly/folly/synchronization/BUCK +418 -0
  767. package/external/folly/folly/synchronization/Baton.h +419 -0
  768. package/external/folly/folly/synchronization/CallOnce.h +263 -0
  769. package/external/folly/folly/synchronization/DelayedInit.h +179 -0
  770. package/external/folly/folly/synchronization/DistributedMutex-inl.h +1744 -0
  771. package/external/folly/folly/synchronization/DistributedMutex.cpp +27 -0
  772. package/external/folly/folly/synchronization/DistributedMutex.h +342 -0
  773. package/external/folly/folly/synchronization/EventCount.h +200 -0
  774. package/external/folly/folly/synchronization/FlatCombining.h +629 -0
  775. package/external/folly/folly/synchronization/Hazptr-fwd.h +217 -0
  776. package/external/folly/folly/synchronization/Hazptr.cpp +36 -0
  777. package/external/folly/folly/synchronization/Hazptr.h +209 -0
  778. package/external/folly/folly/synchronization/HazptrDomain.cpp +68 -0
  779. package/external/folly/folly/synchronization/HazptrDomain.h +832 -0
  780. package/external/folly/folly/synchronization/HazptrHolder.h +431 -0
  781. package/external/folly/folly/synchronization/HazptrObj.h +533 -0
  782. package/external/folly/folly/synchronization/HazptrObjLinked.h +315 -0
  783. package/external/folly/folly/synchronization/HazptrRec.h +68 -0
  784. package/external/folly/folly/synchronization/HazptrThrLocal.h +180 -0
  785. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.cpp +46 -0
  786. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.h +25 -0
  787. package/external/folly/folly/synchronization/Latch.h +160 -0
  788. package/external/folly/folly/synchronization/LifoSem.h +767 -0
  789. package/external/folly/folly/synchronization/Lock.h +887 -0
  790. package/external/folly/folly/synchronization/MicroSpinLock.h +154 -0
  791. package/external/folly/folly/synchronization/NativeSemaphore.h +187 -0
  792. package/external/folly/folly/synchronization/ParkingLot.cpp +37 -0
  793. package/external/folly/folly/synchronization/ParkingLot.h +330 -0
  794. package/external/folly/folly/synchronization/PicoSpinLock.h +167 -0
  795. package/external/folly/folly/synchronization/RWSpinLock.h +549 -0
  796. package/external/folly/folly/synchronization/Rcu.cpp +26 -0
  797. package/external/folly/folly/synchronization/Rcu.h +553 -0
  798. package/external/folly/folly/synchronization/RelaxedAtomic.h +336 -0
  799. package/external/folly/folly/synchronization/SanitizeThread.cpp +141 -0
  800. package/external/folly/folly/synchronization/SanitizeThread.h +166 -0
  801. package/external/folly/folly/synchronization/SaturatingSemaphore.h +324 -0
  802. package/external/folly/folly/synchronization/SmallLocks.h +36 -0
  803. package/external/folly/folly/synchronization/ThrottledLifoSem.h +362 -0
  804. package/external/folly/folly/synchronization/WaitOptions.cpp +25 -0
  805. package/external/folly/folly/synchronization/WaitOptions.h +75 -0
  806. package/external/folly/folly/synchronization/detail/AtomicUtils.h +59 -0
  807. package/external/folly/folly/synchronization/detail/BUCK +104 -0
  808. package/external/folly/folly/synchronization/detail/Hardware.cpp +192 -0
  809. package/external/folly/folly/synchronization/detail/Hardware.h +75 -0
  810. package/external/folly/folly/synchronization/detail/HazptrUtils.h +339 -0
  811. package/external/folly/folly/synchronization/detail/InlineFunctionRef.h +229 -0
  812. package/external/folly/folly/synchronization/detail/Sleeper.cpp +27 -0
  813. package/external/folly/folly/synchronization/detail/Sleeper.h +62 -0
  814. package/external/folly/folly/synchronization/detail/Spin.h +96 -0
  815. package/external/folly/folly/synchronization/detail/ThreadCachedLists.h +174 -0
  816. package/external/folly/folly/synchronization/detail/ThreadCachedReaders.h +189 -0
  817. package/external/folly/folly/synchronization/detail/ThreadCachedTag.h +26 -0
  818. package/external/folly/folly/synchronization/detail/test/BUCK +28 -0
  819. package/external/folly/folly/synchronization/detail/test/HardwareTest.cpp +74 -0
  820. package/external/folly/folly/synchronization/detail/test/InlineFunctionRefTest.cpp +286 -0
  821. package/external/folly/folly/synchronization/example/BUCK +27 -0
  822. package/external/folly/folly/synchronization/example/HazptrLockFreeLIFO.h +88 -0
  823. package/external/folly/folly/synchronization/example/HazptrSWMRSet.h +133 -0
  824. package/external/folly/folly/synchronization/example/HazptrWideCAS.h +62 -0
  825. package/external/folly/folly/synchronization/test/AtomicNotificationTest.cpp +236 -0
  826. package/external/folly/folly/synchronization/test/AtomicRefTest.cpp +170 -0
  827. package/external/folly/folly/synchronization/test/AtomicStructTest.cpp +65 -0
  828. package/external/folly/folly/synchronization/test/AtomicUtilBench.cpp +457 -0
  829. package/external/folly/folly/synchronization/test/AtomicUtilTest.cpp +650 -0
  830. package/external/folly/folly/synchronization/test/BUCK +495 -0
  831. package/external/folly/folly/synchronization/test/Barrier.h +52 -0
  832. package/external/folly/folly/synchronization/test/BarrierTest.cpp +56 -0
  833. package/external/folly/folly/synchronization/test/BatonBenchmark.cpp +77 -0
  834. package/external/folly/folly/synchronization/test/BatonTest.cpp +164 -0
  835. package/external/folly/folly/synchronization/test/BatonTestHelpers.h +118 -0
  836. package/external/folly/folly/synchronization/test/CallOnceBenchmark.cpp +72 -0
  837. package/external/folly/folly/synchronization/test/CallOnceTest.cpp +153 -0
  838. package/external/folly/folly/synchronization/test/DelayedInitTest.cpp +281 -0
  839. package/external/folly/folly/synchronization/test/DistributedMutexTest.cpp +2074 -0
  840. package/external/folly/folly/synchronization/test/EventCountTest.cpp +124 -0
  841. package/external/folly/folly/synchronization/test/FlatCombiningBenchmark.cpp +1789 -0
  842. package/external/folly/folly/synchronization/test/FlatCombiningExamples.h +222 -0
  843. package/external/folly/folly/synchronization/test/FlatCombiningTest.cpp +121 -0
  844. package/external/folly/folly/synchronization/test/FlatCombiningTestHelpers.h +227 -0
  845. package/external/folly/folly/synchronization/test/HazptrTest.cpp +1689 -0
  846. package/external/folly/folly/synchronization/test/LatchTest.cpp +224 -0
  847. package/external/folly/folly/synchronization/test/LifoSemBench.cpp +185 -0
  848. package/external/folly/folly/synchronization/test/LifoSemTests.cpp +353 -0
  849. package/external/folly/folly/synchronization/test/LockTest.cpp +1239 -0
  850. package/external/folly/folly/synchronization/test/NativeSemaphoreTest.cpp +37 -0
  851. package/external/folly/folly/synchronization/test/ParkingLotBenchmark.cpp +239 -0
  852. package/external/folly/folly/synchronization/test/ParkingLotTest.cpp +170 -0
  853. package/external/folly/folly/synchronization/test/RWSpinLockTest.cpp +235 -0
  854. package/external/folly/folly/synchronization/test/RcuBench.cpp +66 -0
  855. package/external/folly/folly/synchronization/test/RcuTest.cpp +330 -0
  856. package/external/folly/folly/synchronization/test/RelaxedAtomicTest.cpp +389 -0
  857. package/external/folly/folly/synchronization/test/SaturatingSemaphoreTest.cpp +166 -0
  858. package/external/folly/folly/synchronization/test/Semaphore.h +242 -0
  859. package/external/folly/folly/synchronization/test/SemaphoreTest.cpp +271 -0
  860. package/external/folly/folly/synchronization/test/SmallLocksBenchmark.cpp +1296 -0
  861. package/external/folly/folly/synchronization/test/SmallLocksTest.cpp +510 -0
  862. package/external/folly/folly/synchronization/test/ThreadCachedEpochBench.h +67 -0
  863. package/external/folly/folly/synchronization/test/ThreadCachedReadersBench.cpp +42 -0
  864. package/external/folly/folly/synchronization/test/ThreadCachedReadersTest.cpp +52 -0
  865. package/external/folly/folly/synchronization/test/ThrottledLifoSemTest.cpp +243 -0
  866. package/external/folly/folly/system/AtFork.cpp +205 -0
  867. package/external/folly/folly/system/AtFork.h +116 -0
  868. package/external/folly/folly/system/AuxVector.h +198 -0
  869. package/external/folly/folly/system/BUCK +144 -0
  870. package/external/folly/folly/system/EnvUtil.cpp +93 -0
  871. package/external/folly/folly/system/EnvUtil.h +113 -0
  872. package/external/folly/folly/system/HardwareConcurrency.cpp +39 -0
  873. package/external/folly/folly/system/HardwareConcurrency.h +23 -0
  874. package/external/folly/folly/system/MemoryMapping.cpp +477 -0
  875. package/external/folly/folly/system/MemoryMapping.h +287 -0
  876. package/external/folly/folly/system/Pid.cpp +87 -0
  877. package/external/folly/folly/system/Pid.h +34 -0
  878. package/external/folly/folly/system/Shell.cpp +33 -0
  879. package/external/folly/folly/system/Shell.h +93 -0
  880. package/external/folly/folly/system/ThreadId.cpp +89 -0
  881. package/external/folly/folly/system/ThreadId.h +62 -0
  882. package/external/folly/folly/system/ThreadName.cpp +330 -0
  883. package/external/folly/folly/system/ThreadName.h +72 -0
  884. package/external/folly/folly/system/test/AtForkTest.cpp +309 -0
  885. package/external/folly/folly/system/test/AuxVectorTest.cpp +55 -0
  886. package/external/folly/folly/system/test/BUCK +120 -0
  887. package/external/folly/folly/system/test/EnvUtilSubprocess.cpp +26 -0
  888. package/external/folly/folly/system/test/EnvUtilTest.cpp +197 -0
  889. package/external/folly/folly/system/test/MemoryMappingTest.cpp +179 -0
  890. package/external/folly/folly/system/test/PidTest.cpp +46 -0
  891. package/external/folly/folly/system/test/ShellTest.cpp +66 -0
  892. package/external/folly/folly/system/test/ThreadIdTest.cpp +114 -0
  893. package/external/folly/folly/system/test/ThreadNameTest.cpp +85 -0
  894. package/external/folly/folly.vcxitems +164 -0
  895. package/external/folly/static/logo.svg +1 -0
  896. package/external/folly/sync-config.json +8 -0
  897. package/package.json +6 -6
  898. package/template/cpp-lib/proj/MyLib.sln +0 -33
  899. package/template/cs-lib/proj/MyLib.sln +0 -33
  900. package/templates/cpp-app/windows/MyApp.sln +0 -33
  901. package/templates/cpp-lib/example/metro.config.js +30 -4
  902. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  903. package/Folly/Folly.vcxproj +0 -378
  904. package/Folly/Folly.vcxproj.filters +0 -558
  905. package/fmt/fmt.vcxproj +0 -153
  906. package/fmt/fmt.vcxproj.filters +0 -59
  907. package/fmt/pch.cpp +0 -4
  908. package/fmt/pch.h +0 -2
  909. /package/{fmt → external/fmt}/cgmanifest.json +0 -0
  910. /package/{Folly → external/folly}/Folly.natvis +0 -0
  911. /package/{Folly → external/folly}/cgmanifest.json +0 -0
  912. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/ConstexprMath.h +0 -0
  913. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/Conv.cpp +0 -0
  914. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/chrono/Hardware.h +0 -0
  915. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/concurrency/CacheLocality.cpp +0 -0
  916. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/dynamic-inl.h +0 -0
  917. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/json.cpp +0 -0
  918. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/SafeAssert.h +0 -0
  919. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.cpp +0 -0
  920. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.h +0 -0
  921. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/portability/Unistd.cpp +0 -0
@@ -0,0 +1,207 @@
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 <vector>
21
+
22
+ #include <folly/Memory.h>
23
+ #include <folly/concurrency/UnboundedQueue.h>
24
+ #include <folly/lang/Align.h>
25
+
26
+ namespace folly {
27
+
28
+ /// PriorityUnboundedQueueSet
29
+ ///
30
+ /// A set of per-priority queues, and an interface for accessing them.
31
+ ///
32
+ /// Functions:
33
+ /// Consumer operations:
34
+ /// bool try_dequeue(T&);
35
+ /// Optional<T> try_dequeue();
36
+ /// Tries to extract an element from the front of the least-priority
37
+ /// backing queue which has an element, if any.
38
+ /// T const* try_peek();
39
+ /// Returns a pointer to the element at the front of the least-priority
40
+ /// backing queue which has an element, if any. Only allowed when
41
+ /// SingleConsumer is true.
42
+ /// Note:
43
+ /// Queues at lower priority are tried before queues at higher priority.
44
+ ///
45
+ /// Secondary functions:
46
+ /// queue& at_priority(size_t);
47
+ /// queue const& at_priority(size_t) const;
48
+ /// Returns a reference to the owned queue at the given priority.
49
+ /// size_t size() const;
50
+ /// Returns an estimate of the total size of the owned queues.
51
+ /// bool empty() const;
52
+ /// Returns true only if all of the owned queues were empty during the
53
+ /// call.
54
+ /// Note: size() and empty() are guaranteed to be accurate only if the
55
+ /// owned queues are not changed concurrently.
56
+ template <
57
+ typename T,
58
+ bool SingleProducer,
59
+ bool SingleConsumer,
60
+ bool MayBlock,
61
+ size_t LgSegmentSize = 8,
62
+ size_t LgAlign = constexpr_log2(hardware_destructive_interference_size),
63
+ template <typename> class Atom = std::atomic>
64
+ class PriorityUnboundedQueueSet {
65
+ public:
66
+ using queue = UnboundedQueue<
67
+ T,
68
+ SingleProducer,
69
+ SingleConsumer,
70
+ MayBlock,
71
+ LgSegmentSize,
72
+ LgAlign,
73
+ Atom>;
74
+
75
+ explicit PriorityUnboundedQueueSet(size_t priorities) : queues_(priorities) {}
76
+
77
+ PriorityUnboundedQueueSet(PriorityUnboundedQueueSet const&) = delete;
78
+ PriorityUnboundedQueueSet(PriorityUnboundedQueueSet&&) = delete;
79
+ PriorityUnboundedQueueSet& operator=(PriorityUnboundedQueueSet const&) =
80
+ delete;
81
+ PriorityUnboundedQueueSet& operator=(PriorityUnboundedQueueSet&&) = delete;
82
+
83
+ queue& at_priority(size_t priority) { return queues_.at(priority); }
84
+
85
+ queue const& at_priority(size_t priority) const {
86
+ return queues_.at(priority);
87
+ }
88
+
89
+ bool try_dequeue(T& item) noexcept {
90
+ for (auto& q : queues_) {
91
+ if (q.try_dequeue(item)) {
92
+ return true;
93
+ }
94
+ }
95
+ return false;
96
+ }
97
+
98
+ Optional<T> try_dequeue() noexcept {
99
+ for (auto& q : queues_) {
100
+ if (auto item = q.try_dequeue()) {
101
+ return item;
102
+ }
103
+ }
104
+ return none;
105
+ }
106
+
107
+ T const* try_peek() noexcept {
108
+ DCHECK(SingleConsumer);
109
+ for (auto& q : queues_) {
110
+ if (auto ptr = q.try_peek()) {
111
+ return ptr;
112
+ }
113
+ }
114
+ return nullptr;
115
+ }
116
+
117
+ size_t size() const noexcept {
118
+ size_t size = 0;
119
+ for (auto& q : queues_) {
120
+ size += q.size();
121
+ }
122
+ return size;
123
+ }
124
+
125
+ bool empty() const noexcept {
126
+ for (auto& q : queues_) {
127
+ if (!q.empty()) {
128
+ return false;
129
+ }
130
+ }
131
+ return true;
132
+ }
133
+
134
+ size_t priorities() const noexcept { return queues_.size(); }
135
+
136
+ private:
137
+ // queue_alloc custom allocator is necessary until C++17
138
+ // http://open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3396.htm
139
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65122
140
+ // https://bugs.llvm.org/show_bug.cgi?id=22634
141
+ using queue_alloc = AlignedSysAllocator<queue, FixedAlign<alignof(queue)>>;
142
+ std::vector<queue, queue_alloc> queues_;
143
+ }; // PriorityUnboundedQueueSet
144
+
145
+ /* Aliases */
146
+
147
+ template <
148
+ typename T,
149
+ bool MayBlock,
150
+ size_t LgSegmentSize = 8,
151
+ size_t LgAlign = constexpr_log2(hardware_destructive_interference_size),
152
+ template <typename> class Atom = std::atomic>
153
+ using PriorityUSPSCQueueSet = PriorityUnboundedQueueSet<
154
+ T,
155
+ true,
156
+ true,
157
+ MayBlock,
158
+ LgSegmentSize,
159
+ LgAlign,
160
+ Atom>;
161
+
162
+ template <
163
+ typename T,
164
+ bool MayBlock,
165
+ size_t LgSegmentSize = 8,
166
+ size_t LgAlign = constexpr_log2(hardware_destructive_interference_size),
167
+ template <typename> class Atom = std::atomic>
168
+ using PriorityUMPSCQueueSet = PriorityUnboundedQueueSet<
169
+ T,
170
+ false,
171
+ true,
172
+ MayBlock,
173
+ LgSegmentSize,
174
+ LgAlign,
175
+ Atom>;
176
+
177
+ template <
178
+ typename T,
179
+ bool MayBlock,
180
+ size_t LgSegmentSize = 8,
181
+ size_t LgAlign = constexpr_log2(hardware_destructive_interference_size),
182
+ template <typename> class Atom = std::atomic>
183
+ using PriorityUSPMCQueueSet = PriorityUnboundedQueueSet<
184
+ T,
185
+ true,
186
+ false,
187
+ MayBlock,
188
+ LgSegmentSize,
189
+ LgAlign,
190
+ Atom>;
191
+
192
+ template <
193
+ typename T,
194
+ bool MayBlock,
195
+ size_t LgSegmentSize = 8,
196
+ size_t LgAlign = constexpr_log2(hardware_destructive_interference_size),
197
+ template <typename> class Atom = std::atomic>
198
+ using PriorityUMPMCQueueSet = PriorityUnboundedQueueSet<
199
+ T,
200
+ false,
201
+ false,
202
+ MayBlock,
203
+ LgSegmentSize,
204
+ LgAlign,
205
+ Atom>;
206
+
207
+ } // namespace folly
@@ -0,0 +1,46 @@
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
+ #include <folly/Likely.h>
18
+ #include <folly/concurrency/ProcessLocalUniqueId.h>
19
+ #include <folly/synchronization/RelaxedAtomic.h>
20
+
21
+ #include <atomic>
22
+
23
+ namespace folly {
24
+
25
+ uint64_t processLocalUniqueId() {
26
+ FOLLY_CONSTINIT static relaxed_atomic<uint64_t> nextEpoch{0};
27
+ // Id format is <epoch: 48 bits> <counter: 16 bits>.
28
+ // Ephemeral threads, if any, can waste a whole epoch, so we keep epochs
29
+ // relatively small, but large enough to amortize the atomic epoch increment.
30
+ constexpr int kCounterBits = 16;
31
+ constexpr uint64_t kCounterMask = (uint64_t(1) << kCounterBits) - 1;
32
+ thread_local uint64_t next{0};
33
+
34
+ // If first call in thread, or counter wrapped around, start new epoch.
35
+ if (FOLLY_UNLIKELY((next & kCounterMask) == 0)) {
36
+ next = nextEpoch++ << kCounterBits;
37
+ // Skip 0 as per contract.
38
+ if (FOLLY_UNLIKELY(next == 0)) {
39
+ ++next;
40
+ }
41
+ }
42
+
43
+ return next++;
44
+ }
45
+
46
+ } // namespace folly
@@ -0,0 +1,38 @@
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 <cstdint>
20
+
21
+ namespace folly {
22
+
23
+ /**
24
+ * Generates a 64-bit id that is unique within the process. The returned ids
25
+ * should not be persisted or passed to other processes, and there are no
26
+ * ordering guarantees.
27
+ *
28
+ * It is guaranteed that 0 is never returned, hence 0 can be used as a sentinel
29
+ * value, similarly to nullptr.
30
+ *
31
+ * The function is thread-safe.
32
+ *
33
+ * The uniqueness guarantee can be broken if enough ids are generated, but even
34
+ * in the most pessimistic scenario it would take a few hundred years.
35
+ */
36
+ uint64_t processLocalUniqueId();
37
+
38
+ } // namespace folly
@@ -0,0 +1,325 @@
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 <array>
20
+ #include <atomic>
21
+ #include <type_traits>
22
+ #include <unordered_set>
23
+
24
+ #include <folly/Likely.h>
25
+ #include <folly/Portability.h>
26
+ #include <folly/Synchronized.h>
27
+ #include <folly/Utility.h>
28
+ #include <folly/detail/StaticSingletonManager.h>
29
+ #include <folly/detail/thread_local_globals.h>
30
+ #include <folly/lang/SafeAssert.h>
31
+ #include <folly/synchronization/AtomicRef.h>
32
+
33
+ namespace folly {
34
+
35
+ namespace detail {
36
+
37
+ // SingletonRelaxedCounterBase
38
+ //
39
+ // Extracts tag-independent functionality from SingletonRelaxedCounter below
40
+ // to avoid the monomorphization the compiler would otherwise perform.
41
+ //
42
+ // Tricks:
43
+ // * Use constexpr vtables as the polymorphization mechanism.
44
+ // * Use double-noinline outer-only-noexcept definitions to shrink code size in
45
+ // inline or monomorphized slow paths.
46
+ template <typename Int>
47
+ class SingletonRelaxedCounterBase {
48
+ protected:
49
+ using Signed = std::make_signed_t<Int>;
50
+ using Counter = Signed; // should be atomic but clang generates worse code
51
+
52
+ struct CounterAndCache {
53
+ Counter counter; // valid during LocalLifetime object lifetime
54
+ Counter* cache; // points to counter when counter is valid
55
+ };
56
+ static_assert(std::is_trivial_v<CounterAndCache>);
57
+
58
+ struct CounterRefAndLocal {
59
+ Counter* counter; // refers either to local counter or to global counter
60
+ bool local; // if true, definitely local; if false, could be global
61
+ };
62
+
63
+ struct LocalLifetime;
64
+
65
+ // Global
66
+ //
67
+ // Tracks all of the per-thread/per-dso counters and lifetimes and maintains
68
+ // a global fallback counter.
69
+ struct Global {
70
+ struct Tracking {
71
+ std::unordered_map<LocalLifetime*, CounterAndCache*> lifetimes;
72
+ };
73
+
74
+ Counter fallback; // used instead of local during thread destruction
75
+ folly::Synchronized<Tracking> tracking;
76
+ };
77
+
78
+ using GetGlobal = Global&();
79
+ using GetLocal = CounterAndCache&();
80
+ using GetLifetime = LocalLifetime&();
81
+
82
+ struct Arg {
83
+ GetGlobal& global;
84
+ GetLocal& local;
85
+ GetLifetime& lifetime;
86
+ };
87
+
88
+ // LocalLifetime
89
+ //
90
+ // Manages local().cache, global().tracking, and moving outstanding counts
91
+ // from local().counter to global().counter during thread destruction and dso
92
+ // unload.
93
+ //
94
+ // The index map is within Global to reduce per-thread overhead for threads
95
+ // which do not participate in counter mutations, rather than being a member
96
+ // field of LocalLifetime. This comes at the cost of the slow path always
97
+ // acquiring a unique lock on the global mutex.
98
+ struct LocalLifetime {
99
+ FOLLY_NOINLINE void destroy(GetGlobal& get_global) noexcept {
100
+ destroy_(get_global);
101
+ }
102
+ FOLLY_NOINLINE void destroy_(GetGlobal& get_global) {
103
+ auto& global = get_global();
104
+ auto const tracking = global.tracking.wlock();
105
+ auto& entry = tracking->lifetimes[this];
106
+ FOLLY_SAFE_CHECK(entry);
107
+ auto entry_counter = atomic_ref(entry->counter);
108
+ auto const current = entry_counter.load(std::memory_order_relaxed);
109
+ atomic_ref(global.fallback).fetch_add(current, std::memory_order_relaxed);
110
+ entry_counter.store(Signed(0), std::memory_order_relaxed);
111
+ entry->cache = nullptr;
112
+ tracking->lifetimes.erase(this);
113
+ }
114
+
115
+ FOLLY_NOINLINE void track(Global& global, CounterAndCache& state) noexcept {
116
+ track_(global, state);
117
+ }
118
+ FOLLY_NOINLINE void track_(Global& global, CounterAndCache& state) {
119
+ state.cache = &state.counter;
120
+ auto const tracking = global.tracking.wlock();
121
+ auto& entry = tracking->lifetimes[this];
122
+ FOLLY_SAFE_CHECK(!entry || &state == entry);
123
+ entry = &state;
124
+ }
125
+ };
126
+
127
+ FOLLY_NOINLINE static Int aggregate(GetGlobal& get_global) noexcept {
128
+ return aggregate_(get_global);
129
+ }
130
+ FOLLY_NOINLINE static Int aggregate_(GetGlobal& get_global) {
131
+ auto& global = get_global();
132
+ auto count = atomic_ref(global.fallback).load(std::memory_order_relaxed);
133
+ auto const tracking = global.tracking.rlock();
134
+ for (auto const& [_, entry] : tracking->lifetimes) {
135
+ FOLLY_SAFE_CHECK(entry);
136
+ count += atomic_ref(entry->counter).load(std::memory_order_relaxed);
137
+ }
138
+ return std::is_unsigned<Int>::value
139
+ ? to_unsigned(std::max(Signed(0), count))
140
+ : count;
141
+ }
142
+
143
+ FOLLY_ERASE static void mutate(Signed v, CounterRefAndLocal cl) {
144
+ auto c = atomic_ref(*cl.counter);
145
+ if (cl.local) {
146
+ // splitting load/store on the local counter is faster than fetch-and-add
147
+ c.store(c.load(std::memory_order_relaxed) + v, std::memory_order_relaxed);
148
+ } else {
149
+ // but is not allowed on the global counter because mutations may be lost
150
+ c.fetch_add(v, std::memory_order_relaxed);
151
+ }
152
+ }
153
+
154
+ FOLLY_NOINLINE static void mutate_slow(Signed v, Arg const& arg) noexcept {
155
+ mutate(v, counter(arg));
156
+ }
157
+
158
+ FOLLY_NOINLINE static Counter& counter_slow(Arg const& arg) noexcept {
159
+ auto& global = arg.global();
160
+ if (thread_is_dying()) {
161
+ return global.fallback;
162
+ }
163
+ auto& state = arg.local();
164
+ arg.lifetime().track(global, state); // idempotent
165
+ auto const cache = state.cache;
166
+ return FOLLY_LIKELY(!!cache) ? *cache : global.fallback;
167
+ }
168
+
169
+ FOLLY_ERASE static CounterRefAndLocal counter(Arg const& arg) {
170
+ auto& state = arg.local();
171
+ auto const cache = state.cache; // a copy! null before/after LocalLifetime
172
+ auto const counter = FOLLY_LIKELY(!!cache) ? cache : &counter_slow(arg);
173
+ // cache is a stale nullptr after the first call to counter_slow; this is
174
+ // intentional for the side-effect of shrinking the inline fast path
175
+ return CounterRefAndLocal{counter, !!cache};
176
+ }
177
+ };
178
+
179
+ } // namespace detail
180
+
181
+ // SingletonRelaxedCounter
182
+ //
183
+ // A singleton-per-tag relaxed counter. Optimized for increment/decrement
184
+ // runtime performance under contention and inlined fast path code size.
185
+ //
186
+ // The cost of computing the value of the counter is linear in the number of
187
+ // threads which perform increments/decrements, and computing the value of the
188
+ // counter is exclusive with thread exit and dlclose. The result of this
189
+ // computation is not a point-in-time snapshot of increments and decrements
190
+ // summed, but is an approximation which may exclude any subset of increments
191
+ // and decrements that do not happen before the start of the computation.
192
+ //
193
+ // Templated over the integral types. When templated over an unsigned integral
194
+ // type, it is assumed that decrements do not exceed increments, and if within
195
+ // computation of the value of the counter more decrements are observed to
196
+ // exceed increments then the excess decrements are ignored. This avoids the
197
+ // scenario of incrementing and decrementing once each in different threads,
198
+ // and concurrently observing a computed value of the counter of 2^64 - 1.
199
+ //
200
+ // Templated over the tag types. Each unique pair of integral type and tag type
201
+ // is a different counter.
202
+ //
203
+ // Implementation:
204
+ // Uses a thread-local counter when possible to avoid contention, and a global
205
+ // counter as a fallback. The total count at any given time is computed by
206
+ // summing over the global counter plus all of the thread-local counters; since
207
+ // the total sum is not a snapshot of the value at any given point in time, it
208
+ // is a relaxed sum; when the system quiesces (i.e., when no concurrent
209
+ // increments or decrements are happening and no threads are going through
210
+ // thread exit phase), the sum is exact.
211
+ //
212
+ // Most of the implementation is in SingletonRelaxedCounterBase to avoid excess
213
+ // monomorphization.
214
+ template <typename Int, typename Tag>
215
+ class SingletonRelaxedCounter
216
+ : private detail::SingletonRelaxedCounterBase<Int> {
217
+ public:
218
+ static void add(Int value) { mutate(+to_signed(value)); }
219
+ static void sub(Int value) { mutate(-to_signed(value)); }
220
+ static Int count() { return aggregate(global); }
221
+
222
+ private:
223
+ using Base = detail::SingletonRelaxedCounterBase<Int>;
224
+ using Base::aggregate;
225
+ using Base::mutate;
226
+ using Base::mutate_slow;
227
+ using typename Base::Arg;
228
+ using typename Base::CounterAndCache;
229
+ using typename Base::GetGlobal;
230
+ using typename Base::Global;
231
+ using typename Base::LocalLifetime;
232
+ using typename Base::Signed;
233
+
234
+ struct MonoLocalLifetime : LocalLifetime {
235
+ ~MonoLocalLifetime() noexcept(false) { LocalLifetime::destroy(global); }
236
+ };
237
+
238
+ // It is an invariant that in a single call to mutate which calls mutate_slow
239
+ // the thread_local local and the thread_local lifetime that are used are in
240
+ // the same DSO as each other.
241
+ //
242
+ // The following functions are all [[gnu::visibility("hidden")]] in order to
243
+ // ensure this invariant.
244
+
245
+ FOLLY_ERASE_NOINLINE static void mutate_slow(Signed v) noexcept {
246
+ static constexpr Arg arg{global, local, lifetime};
247
+ mutate_slow(v, arg);
248
+ }
249
+
250
+ FOLLY_ERASE static void mutate(Signed v, void (&slow)(Signed) = mutate_slow) {
251
+ auto const cache = local().cache; // a copy! null before/after LocalLifetime
252
+ // fun-ref to trick compiler into emitting a tail call
253
+ FOLLY_LIKELY(!!cache) ? mutate(v, {cache, true}) : slow(v);
254
+ }
255
+
256
+ static constexpr GetGlobal& global = folly::detail::createGlobal<Global, Tag>;
257
+
258
+ FOLLY_ERASE static CounterAndCache& local() {
259
+ // this is a member function local instead of a class member because of
260
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66944
261
+ static thread_local CounterAndCache instance;
262
+ return instance;
263
+ }
264
+
265
+ FOLLY_ERASE static LocalLifetime& lifetime() {
266
+ static thread_local MonoLocalLifetime lifetime;
267
+ return lifetime;
268
+ }
269
+ };
270
+
271
+ template <typename Counted>
272
+ class SingletonRelaxedCountableAccess;
273
+
274
+ // SingletonRelaxedCountable
275
+ //
276
+ // A CRTP base class for making the instances of a type within a process be
277
+ // globally counted. The running counter is a relaxed counter.
278
+ //
279
+ // To avoid adding any new names from the base class to the counted type, the
280
+ // count is exposed via a separate type SingletonRelaxedCountableAccess.
281
+ //
282
+ // This type is a convenience interface around SingletonRelaxedCounter.
283
+ template <typename Counted>
284
+ class SingletonRelaxedCountable {
285
+ public:
286
+ SingletonRelaxedCountable() noexcept {
287
+ static_assert(
288
+ std::is_base_of<SingletonRelaxedCountable, Counted>::value, "non-crtp");
289
+ Counter::add(1);
290
+ }
291
+ ~SingletonRelaxedCountable() noexcept {
292
+ static_assert(
293
+ std::is_base_of<SingletonRelaxedCountable, Counted>::value, "non-crtp");
294
+ Counter::sub(1);
295
+ }
296
+
297
+ SingletonRelaxedCountable(const SingletonRelaxedCountable&) noexcept
298
+ : SingletonRelaxedCountable() {}
299
+ SingletonRelaxedCountable(SingletonRelaxedCountable&&) noexcept
300
+ : SingletonRelaxedCountable() {}
301
+
302
+ SingletonRelaxedCountable& operator=(const SingletonRelaxedCountable&) =
303
+ default;
304
+ SingletonRelaxedCountable& operator=(SingletonRelaxedCountable&&) = default;
305
+
306
+ private:
307
+ friend class SingletonRelaxedCountableAccess<Counted>;
308
+
309
+ struct Tag;
310
+ using Counter = SingletonRelaxedCounter<size_t, Tag>;
311
+ };
312
+
313
+ // SingletonRelaxedCountableAccess
314
+ //
315
+ // Provides access to the running count of instances of a type using the CRTP
316
+ // base class SingletonRelaxedCountable.
317
+ template <typename Counted>
318
+ class SingletonRelaxedCountableAccess {
319
+ public:
320
+ static size_t count() {
321
+ return SingletonRelaxedCountable<Counted>::Counter::count();
322
+ }
323
+ };
324
+
325
+ } // namespace folly