- 27 Jun, 2021 40 commits
-
-
Roman Koshelev authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/1580 Reviewed By: luciang Differential Revision: D28627136 Pulled By: yfeldblum fbshipit-source-id: 1362506502ad3282f53512999d1c79822f2ce6e8
-
Yedidya Feldblum authored
Differential Revision: D29089239 fbshipit-source-id: 83cbe9d74d8f7f648e18b8ce1e3e13ca8cb33006
-
Yedidya Feldblum authored
Summary: Use `std::unique_lock`, `std::shared_lock`, and `folly::upgrade_lock`. There are two reasons: * Makes generic the use of `std::unique_lock` with `std::mutex`, which is currently special-cased. * Permits specializations of `std::unique_lock` and the other lock types to be found automatically. In particular, this permits the use of `Synchronized<T, DistributedMutex>`, which is only proxy-lockable and not lockable. Reviewed By: simpkins Differential Revision: D28705607 fbshipit-source-id: 48daa2910ce16ee4fde6f5ea629a41d9768f3c87
-
Yedidya Feldblum authored
Summary: They were used as extension points at one time, but no longer. Reviewed By: Alfus Differential Revision: D28987212 fbshipit-source-id: e9d59e5cf9641323657314b088eef516ce068112
-
Aaryaman Sagar authored
Summary: ``` auto x = std::atomic<std::uint64_t>{0}; auto y = std::atomic<std::uint64_t>{0}; // thread 1 x.store(1, std::memory_order_release); auto one = y.load(std::memory_order_seq_cst); // thread 2 y.fetch_add(1, std::memory_order_seq_cst); auto two = x.load(std::memory_order_seq_cst); ``` Here it is possible for both `one` and `two` to end up with the value `0`. The code in ParkingLot assumed that this would not be possible; and the counter used to track the number of waiters could get reordered with respect to loads around it. This diff adds a seq_cst fence to ensure unparking threads always sequence their stores before parking _before_ the counter load globally. Reviewed By: yfeldblum, ot Differential Revision: D28972810 fbshipit-source-id: 06eb6a2e6df6b00bf07ac8454a79257a5276e154
-
Yedidya Feldblum authored
Summary: To observe how the compiler generates corresponding code. Reviewed By: Alfus Differential Revision: D28984027 fbshipit-source-id: d1c86197931aad257eb922cec9810c71ecdfc20a
-
Yedidya Feldblum authored
Summary: The numeric functions `less_than` and `greater_than` are intended for integer use but, technically, they are not constrained to integer use. If they are used with floating-point types, `min()` does not do the expected thing so use use `lowest()`. Fixes: https://github.com/facebook/folly/issues/1604. Reviewed By: iahs Differential Revision: D29069620 fbshipit-source-id: 369bd59338b889cb1ec0f56d232a3775500573d0
-
Jiawen Geng authored
Summary: Ref: https://abseil.io/tips/143 Pull Request resolved: https://github.com/facebook/folly/pull/1603 Differential Revision: D29034248 Pulled By: yfeldblum fbshipit-source-id: 87ae1970eab3f067d71a480fc7a95b18e2041c6d
-
Lee Howes authored
Summary: Use the global immutable executor by default for SerialExecutor. Reviewed By: yfeldblum Differential Revision: D28925750 fbshipit-source-id: 91f75cfb3a4880098d933fe1f148d5c3b2e896e7
-
Maged Michael authored
Summary: Remove unused HazptrDomain data members unprotected_ and children_ and the function reclaim_unprotected_safe. The data members and function were used before the change in October 2020 that eliminated the nesting of synchronous reclamation within asynchronous reclamation. Reviewed By: yfeldblum Differential Revision: D29017460 fbshipit-source-id: 645a61aedc801cb3eb14a4c3a085fea8b8422f1e
-
Lee Howes authored
Summary: Remove all uses of the default SerialExecutor by changing callsites to be explicit, and removing the default parameter. This will allow us to change the default to a safer option in a subsequent diff. Reviewed By: yfeldblum Differential Revision: D28842180 fbshipit-source-id: 93027dcf8b19c44380534dabd731651780dac90e
-
Dan Melnic authored
Summary: io_uring SendmsgRecvmsg test fixes Reviewed By: danobi Differential Revision: D29003163 fbshipit-source-id: c1139a67d7b687d0eab21be7c6329f593dbe6ea9
-
Yedidya Feldblum authored
Summary: A function like keep_sink but marked `noexcept`. Useful for shrinking check functions with duplicated cleanups. Reviewed By: aary Differential Revision: D28984340 fbshipit-source-id: f1099d43db25492db0e633f8cc8a5d44bcf157bc
-
Dead Code Bot authored
Reviewed By: yfeldblum Differential Revision: D28995271 fbshipit-source-id: bd64f4f98742fbad801f3db15a9cb8f5f71fe4b1
-
Chad Austin authored
Summary: The testpilot command line getdeps generated was not suitable for tpx when filtering. tpx would consider the passed test filter an environment variable. Reorder a few things to at least make filtering work. Reviewed By: fanzeyi Differential Revision: D28976061 fbshipit-source-id: 21c45b3a4a59711a2a5da36a1bd11b7b4871ec5d
-
Kudo Chien authored
Summary: Android NDK bionic with FORTIFY will override original `open()` definition and making folly `wrapNoInt` template failed to deduct. The issue may happen only after NDK r21 because [this commit landed after r21](https://android.googlesource.com/platform/bionic/+/9349b9e51b41d12fd054b925802b626ca2db0afb%5E%21/#F0) References: https://github.com/android/ndk/issues/1328 https://github.com/llvm/llvm-project/commit/0a0e411204a2baa520fd73a8d69b664f98b428ba Pull Request resolved: https://github.com/facebook/folly/pull/1593 Test Plan: Tested running `objdump -dr` on the object file generated in both `mode/opt` and `mode/opt-gcc` build modes and confirmed the generated code was identical. Reviewed By: yfeldblum Differential Revision: D28953120 Pulled By: simpkins fbshipit-source-id: 225583a5a011e8456592a0bcfcd669fe966ea6af
-
Cameron Pickett authored
Summary: Introduces a CancellableAsyncScope type that automatically adds a CancellationToken to every task added() on the scope. Reviewed By: yfeldblum Differential Revision: D28438228 fbshipit-source-id: 2416725360c16f8d95dd5c35997dd624278d0980
-
Yedidya Feldblum authored
Summary: Add a specialization of `folly::hasher<std::string_view>` parallel to the specialilzation of `folly::hasher<std::string>`. Reviewed By: luciang Differential Revision: D28921343 fbshipit-source-id: 77213d9ff66cec57b6d36b214c41e479e1d9455d
-
Emanuele Altieri authored
Summary: We need a thread-safe alternative to `LOG_FIRST_N(severity, n)` -- specifically when n = 1, the most common case. Reviewed By: yfeldblum, ot, luciang Differential Revision: D28884240 fbshipit-source-id: 41c937bf37dba036b71f1c62fd70445e79a3924a
-
Andrew Huang authored
Summary: Since we're moving towards enabling TLS 1.3 by default in folly, add this version to the SSLVersion enum. Reviewed By: yfeldblum Differential Revision: D28908538 fbshipit-source-id: 19d9ee248fff4682eec59c6f3d699fc6c9fa1917
-
Yedidya Feldblum authored
Summary: There are many possible knobs that may be tweaked but long chains of positional params are awkward. Extract a policy param to house many of these chained params. Facilitates adding more params in the future as well. Reviewed By: ot, luciang Differential Revision: D28824188 fbshipit-source-id: f56ec15242b148890eced06a3dd101d7cfaaefb1
-
Yedidya Feldblum authored
Summary: Now that `exception_wrapper` can access the exception object directly from the `std::exception_ptr`, it no longer needs to be passed the exception object separately. This eliminates duplicative `catch (exception const&)` clauses which primarily construct `exception_wrapper` instances, reducing build artifact size. Reviewed By: akrieger Differential Revision: D27888763 fbshipit-source-id: 5f60a07083b3c8d818f0eafd5b17afcfca239ab8
-
Yedidya Feldblum authored
Summary: The helper `catch_exception` may be used to wrap the `try {} catch (...) {}` syntax. Reviewed By: Orvid, luciang Differential Revision: D28276166 fbshipit-source-id: be903215251d8ea3321bd6d3b994b19359056f8c
-
Yedidya Feldblum authored
Summary: Avoid questions of what may the mutex unlock method do to the passed state: nothing. Reviewed By: aary Differential Revision: D28895552 fbshipit-source-id: 8b73e76711bb553a344d958c80dcf14d56e74ffd
-
Robert Quitt authored
Summary: Remove all the conditional compilations that were used for the googletest upgrade. We're set on Googletest 1.10.x now, so no need to keep the old code lying around. TODO in the future, is to deprecate some of the other fb-only patches, and to switch over fbcode to use fbsource/third-party Reviewed By: yfeldblum, igorsugak Differential Revision: D28860854 fbshipit-source-id: 8ffbaf860fca8897f6691218bc0154723ec954d4
-
Yedidya Feldblum authored
Summary: Under gcc8 in some usages, the compiler emits a stack copy of the proxy state but passes `7` instead of the address of the stack copy. Looks like incorrect codegen. Work around that bug by not having a stack copy. Reviewed By: aary Differential Revision: D28890467 fbshipit-source-id: 50b16464708c7ef3e360618f3d738264f59cf8a6
-
Yedidya Feldblum authored
Summary: There is no longer compelling reason to keep this overload since it is relatively cheap to inspect any `exception_wrapper` or `exception_ptr`, no matter from which exception object type it is constructed. Reviewed By: luciang Differential Revision: D26877547 fbshipit-source-id: d9a38c9a56a47b9453eda2d9e8abf7586c8aab61
-
Dan Melnic authored
Summary: Switch getReadBuffers to be IOBufVecQueue::IoVecVec based (Note: this ignores all push blocking failures!) Reviewed By: simpkins Differential Revision: D28467957 fbshipit-source-id: 637bf07d516120cb2bab89c3cbc28f58b700748a
-
Giuseppe Ottaviano authored
Summary: Universe upper bound is inclusive, so we need to make sure that we have a pointer for `upperBitsUniverse / skipQuantum`. The bug has currently no effect as we use a tighter upper bound by reading the end of the list on construction, but it is necessary to fix this if we want to avoid doing that. Reviewed By: yfeldblum, philippv, luciang Differential Revision: D28886633 fbshipit-source-id: ba53fcc3f2ae1d52fe8e39576ad930754282ddd9
-
Dan Melnic authored
Summary: Add folly::IOBufIovecBuilder to be used with vector recv (Note: this ignores all push blocking failures!) Reviewed By: simpkins Differential Revision: D28394781 fbshipit-source-id: 973eea6e4cbe15d68d1f123d5fed98b50f5d23cc
-
Yedidya Feldblum authored
Reviewed By: ot, luciang Differential Revision: D28250766 fbshipit-source-id: 288c8c61d23c001dcb0d461d3d5179e82c755aaf
-
Yedidya Feldblum authored
Summary: In C++20, `std::atomic` is no longer trivial. Change the static-assert that checks for its triviality to check instead for narrower properties. Fixes: https://github.com/facebook/folly/issues/1594. Reviewed By: ot, Mizuchi, luciang Differential Revision: D28856931 fbshipit-source-id: e7ff4a1e80e59fdc78efb271f63c6325d5528416
-
Yedidya Feldblum authored
Summary: * Rename from `proxy()` to `state()` and from `proxy_type` to `state_type`. * Require `state_type` to be semiregular and testable (convertible explicitly to `bool`). A default-constructed instance and an instance just after assignment from a default-constructed instance must test false. * Add `std::adopt_lock` constructor which can accept a `state_type`. Reviewed By: aary Differential Revision: D28724949 fbshipit-source-id: 64fc29bd875dc24cc3fd62d1b4b86f7ebdacfb73
-
Yedidya Feldblum authored
Summary: By implementing it in terms of a param-pack expansion of calls to `with_exception`. No longer rethrows objects not derived from `std::exception`. Reviewed By: luciang Differential Revision: D28125669 fbshipit-source-id: b9eef160cc03e2d6f5524c1a5113405cc2881324
-
Yedidya Feldblum authored
Summary: Rather than implementing it via `handle`, which is complex. Works now that exact casting can always be done without `catch`. Reviewed By: luciang Differential Revision: D27987594 fbshipit-source-id: 9961b55089f58df1b06793390817e497c6da54ae
-
Leander Schulten authored
Summary: This fixes https://github.com/facebook/fbthrift/issues/429 Pull Request resolved: https://github.com/facebook/fbthrift/pull/430 Reviewed By: iahs Differential Revision: D28832985 Pulled By: vitaut fbshipit-source-id: 0719f27207d11bb7970cc43c621640c425d8f55d
-
Yedidya Feldblum authored
Summary: Rather than implementing it via `with_exception`, which is implemented in terms of `handle`, which is complex. Works now that exact casting can always be done without `catch`. Reviewed By: ot, luciang Differential Revision: D27987235 fbshipit-source-id: 822b0fe168e3b55c506b88810e13573b87c381c7
-
Rustam Miftakhutdinov authored
Summary: - Add DeadlockDetector interface to folly/concurrency - Add IOThreadPoolDeadlockDetectorObserver class that can be registered in IOThreadPoolExecutor to enable the functionality for its threads that use EventBase. - In ThriftServer use the new observer with IOThreadPoolExecutor - Default implementation of deadlock detector is stubbed out and does not do anything Reviewed By: mshneer Differential Revision: D28582490 fbshipit-source-id: 1cf3c2957b46de83f07c53bab708fe09ebbe2b79
-
Yedidya Feldblum authored
Summary: Rather than implementing it via `with_exception`, which is implemented in terms of `handle`, which is complex. Works now that exact casting can always be done without `catch`. Reviewed By: ot, luciang Differential Revision: D27987172 fbshipit-source-id: eca54e47b3a0fc5da4614bbd23b881b1e35eca4b
-
Abdoul-Kader Keita authored
Summary: Pull Request resolved: https://github.com/facebookexternal/f4d/pull/1090 Reviewed By: laithsakka Differential Revision: D28774321 Pulled By: kkeita fbshipit-source-id: 2c8eb8edf69611e94bf124b52fc8c1e11df9b527
-