- 29 Apr, 2021 2 commits
-
-
Yedidya Feldblum authored
Differential Revision: D27582476 fbshipit-source-id: 376fecda16de8a4836f9ba5196701a9045799ce7
-
Yedidya Feldblum authored
Summary: So that it is possible to have both `Foo<K0, K1, X, Y>` and `Bar<K0, K1, A, B>` where both `Foo` and `Bar` use `UniqueInstance`. Differential Revision: D27600228 fbshipit-source-id: a5d58726ea0009d7a45c0234f9cff723662a4604
-
- 28 Apr, 2021 1 commit
-
-
Lee Howes authored
Summary: Parameterises CPUThreadPoolExecutor to allow us to construct one that prohibits blocking operations on its threads. The flag is stored as a thread local and applied using a scoped guard. Reviewed By: yfeldblum Differential Revision: D27893465 fbshipit-source-id: 71af1c0b7c23752f499712f498b6abb58a345979
-
- 27 Apr, 2021 3 commits
-
-
Philip Pronin authored
Summary: Similarly to `IoUringOp::getSqe()`, expose underlying submission data structure. The end goal is to perform certain introspection in client code to report aggregated stats (number of IO, total size of IO, ...). Reviewed By: ot Differential Revision: D28022188 fbshipit-source-id: edc51420ed901f0a0d9b5b1338308ad680371298
-
Alex Eckert authored
Summary: I have a use case where I would like to check if the AsyncPipe is still active without pumping something in to write(). Could set up an onClosed callback, but this would introduce more complexity. This adds a function to determine if the queue inside the AsyncPipe still exists. Reviewed By: iahs Differential Revision: D28015007 fbshipit-source-id: 1ba37466218abd2f42eab1d8ea5677c3945e31f5
-
Alan Frindell authored
Summary: For TCP sockets, it may not be possible to query the peer address from the fd if the endpoint is no longer connected (closed with reset). In most server cases, the peer address is known when the connection is accepted, so it can be prepopulated. Reviewed By: mjoras Differential Revision: D27985942 fbshipit-source-id: 630098ac00930b978fe8a9cad1894834c44d4d93
-
- 26 Apr, 2021 3 commits
-
-
Igor Sugak authored
Summary: ``` folly/executors/InlineExecutor.h:29:11: error: '~InlineLikeExecutor' overrides a destructor but is not marked 'override' [-Werror,-Wsuggest-destructor-override] virtual ~InlineLikeExecutor() {} ^ folly/Executor.h:57:11: note: overridden virtual function is here virtual ~Executor() {} ^ In file included from tupperware/agent/system/Mounts.cpp:18: In file included from folly/futures/Future.h:36: In file included from folly/fibers/Baton.h:297: In file included from folly/fibers/Baton-inl.h:19: folly/fibers/FiberManagerInternal.h:588:10: error: 'timeoutExpired' overrides a member function but is not marked 'override' [-Werror,-Wsuggest-override] void timeoutExpired() noexcept { run(); } ^ folly/io/async/HHWheelTimer.h:95:18: note: overridden virtual function is here virtual void timeoutExpired() noexcept = 0; ^ In file included from tupperware/agent/system/Mounts.cpp:18: In file included from folly/futures/Future.h:36: In file included from folly/fibers/Baton.h:297: In file included from folly/fibers/Baton-inl.h:19: folly/fibers/FiberManagerInternal.h:589:10: error: 'callbackCanceled' overrides a member function but is not marked 'override' [-Werror,-Wsuggest-override] void callbackCanceled() noexcept {} ^ folly/io/async/HHWheelTimer.h:100:18: note: overridden virtual function is here virtual void callbackCanceled() noexcept { timeoutExpired(); } ^ 3 errors generated. ``` Reviewed By: simpkins Differential Revision: D27988235 fbshipit-source-id: 799484c52f89fa20f647ff0801b8d136b657b395
-
Lee Howes authored
Summary: Add a termination tag that carries through the blocking context chain. This flag notifies logging operations that they may go as far as to terminate the process if blocking operations are detected. The flags carry through the blocking scopes so the termination flag will stay present while we enable and disable blocking - it would be sticky for a given thread once set. Reviewed By: yfeldblum Differential Revision: D27869075 fbshipit-source-id: 27014a3e6c9b28c0f433949a576bb6116e7c06c0
-
Yedidya Feldblum authored
Summary: Internals are not portable between versions or across platforms. Reviewed By: Orvid Differential Revision: D27990286 fbshipit-source-id: b70d8d3f67a1e5262efa842f70817e3ae3972339
-
- 25 Apr, 2021 6 commits
-
-
Yedidya Feldblum authored
Reviewed By: Orvid Differential Revision: D27582035 fbshipit-source-id: 0f0c35adca1c44dcd0ef88f2443f769d7991e6aa
-
Yedidya Feldblum authored
Summary: Add a source file for the function bodies of `getThreadID` and `getOSThreadID`. Differential Revision: D27698463 fbshipit-source-id: 255961954b1be07e59b19ef3006dcd6149795861
-
Yedidya Feldblum authored
Summary: `folly/stats/StreamingStats.h` uses `std::min` and `std::max` so must `#include <algorithm>`. Reviewed By: Orvid Differential Revision: D27986054 fbshipit-source-id: 1c1160101e1ebb4e0b1a16d3d97fd2931db9eeb0
-
Yedidya Feldblum authored
Summary: `StaticSingletonManager::create<T, Tag>` is larger than necessary, which may not be desirable when using many tags with the same type. Permit call-sites to use static data to shrink the functions. Reviewed By: aary Differential Revision: D27863037 fbshipit-source-id: 9f6ced3e7d7a85b78e671f69d7a475ab4de5eea0
-
Yedidya Feldblum authored
Summary: By suppressing `-Wdeprecated-declarations` v.s. `-Wdeprecated`, which latter works only under clang. Reviewed By: Orvid Differential Revision: D27987616 fbshipit-source-id: 4bf2a225a65d8ac7c7555123343e9536759fcfcc
-
Igor Sugak authored
Summary: Reported by clang-12: ``` folly/test/SynchronizedTestLib-inl.h:587:7: error: expression result unused [-Werror,-Wunused-value] SYNCHRONIZED_DUAL(lv, v, lm, m) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ folly/Synchronized.h:1819:5: note: expanded from macro 'SYNCHRONIZED_DUAL' ::folly::detail::SYNCHRONIZED_macro_is_deprecated{}; \ ^ ~~ ``` Reviewed By: chadaustin Differential Revision: D27954777 fbshipit-source-id: bd1dba5ebf563b34b496457b980568ea1c978442
-
- 24 Apr, 2021 9 commits
-
-
Yedidya Feldblum authored
Reviewed By: Orvid Differential Revision: D27559485 fbshipit-source-id: be2db59ef6d9b4cf178216a4b8851e27e7ecef93
-
Yedidya Feldblum authored
Summary: The facility was renamed in gtest. Reviewed By: praihan Differential Revision: D27985919 fbshipit-source-id: d35795d7bfb985767b5e6c28141dac47a4b9f0ce
-
Yedidya Feldblum authored
Summary: No risk of mismatched types. Reviewed By: vitaut Differential Revision: D27933275 fbshipit-source-id: 41bf921748299ead7388bb0dc4197eb4390aa007
-
Yedidya Feldblum authored
Summary: To avoid the extra and unusual dependency in this particular case. Differential Revision: D27933052 fbshipit-source-id: aeda0b7b5916c3fe05581f9880472d194412c461
-
Yedidya Feldblum authored
Summary: The release order is not valid for compare-exchange-failure-load. Reviewed By: magedm Differential Revision: D27932613 fbshipit-source-id: 689929ecdef8feaec268dc2cd350ce001103ee75
-
Yedidya Feldblum authored
Summary: Prefer not to have polyfills. The class `NativeSemaphore` replaces this polyfill. Reviewed By: Orvid Differential Revision: D27971239 fbshipit-source-id: 39bd8b2d9be895a947faee4d522420535378fdc3
-
Lee Howes authored
Summary: Rename ForbidTag to TrackTag as a counter to PermitTag. ForbidTag did not capture the idea that in practice we simply log blocking operations. TrackTag allows for that and opens scope for a more aggressive form of tracking on top. Reviewed By: andriigrynenko Differential Revision: D27914911 fbshipit-source-id: d56132b7e389825167503934b7af08f9a3ccf1fe
-
Robin Cheng authored
Summary: Thread 1: - Creates an eventfd X - Registers X with an event base - Closes X - Unregisters X from the event base Thread 2: - Creates some other file descriptor (eventfd or socket or whatever); the operating system reuses file descriptor #X. The unregistering of X from the event base in thread 1 races with the opening of reused X in thread 2. The fix is to unregister X before closing X. Reviewed By: yfeldblum Differential Revision: D27962155 fbshipit-source-id: 1bcb62c7ebe0297ab9687e1a0edf37d319637fda
-
Yedidya Feldblum authored
Summary: Replace the uses of `FOLLY_CL_USE_FOLLY_TLS` in some cases with C++ checks on `kIsMobile`. Differential Revision: D27669672 fbshipit-source-id: 79a29896653f2fa62b10b488220d8cf83cba3d00
-
- 23 Apr, 2021 4 commits
-
-
Yedidya Feldblum authored
Summary: To use `std::atomic`, we need `#include <atomic>`. Reviewed By: Mizuchi Differential Revision: D27932606 fbshipit-source-id: 8d29a56a75b27ae35bac37b87a7e6d6d1661030e
-
Yedidya Feldblum authored
Summary: The facility was renamed in gtest. Reviewed By: praihan Differential Revision: D27904281 fbshipit-source-id: 3f00b4371e17cd85672ad7ef706cea4ca1ba5c64
-
Yedidya Feldblum authored
Summary: On apple platforms, posix sem is deprecated. On windows, it does not exist. So switch to the native-semaphore wrapper. Reviewed By: chadaustin Differential Revision: D27903002 fbshipit-source-id: d53c7762fea3123cf67cda48fdd87489a0ee496c
-
Yedidya Feldblum authored
Summary: A semaphore type which wraps the platform native semaphore type. On Windows, this is the Windows semaphore type. On Apple, this is the semaphore type from libdispatch. Otherwise, this is the POSIX semaphore type, which is deprecated on Apple and unavailable on Windows. Reviewed By: Orvid Differential Revision: D27951114 fbshipit-source-id: e6a870f656eecd3ba41c2efed038b916c124d0e8
-
- 22 Apr, 2021 6 commits
-
-
Chad Austin authored
Summary: The migration to tpx broke Watchman's tests because test_bser relies on YARN_YARN_OFFLINE_MIRROR being set in the environment and tpx doesn't forward environment variables into the test. Explicitly forward them ourselves. Reviewed By: fanzeyi Differential Revision: D27897172 fbshipit-source-id: 16c8017a89979802bd9d443825ed4e22cb6ff6c9
-
Giuseppe Ottaviano authored
Summary: This diff enables a symmetrical pattern to `makeGuard()`/`dismiss()`: `makeDismissedGuard()` will create a guard that will not execute unless `rehired()`'d. This is for use cases where the guard's scope is wider than where the condition on whether it should execute is evaluated. For example ``` State state; auto guard = makeDismissedGuard([&] { cleanup(state); }); if (modifyStateInAWayThatRequiresCleanup(state)) { guard.rehire(); } // Use state. ``` Reviewed By: yfeldblum Differential Revision: D27931274 fbshipit-source-id: fbf7048dc991b73553cd6429f5e73345e4104d49
-
Yedidya Feldblum authored
Summary: Permit calls of the form: ```lang=c++ FOLLY_SAFE_DCHECK(expr); ``` Reviewed By: ot Differential Revision: D27843903 fbshipit-source-id: 23869720822fcdba0845c42279855b101c8e2b36
-
Andrii Grynenko authored
Reviewed By: praihan Differential Revision: D27800735 fbshipit-source-id: 26f2c1be72bb66864173beb87244129dd6194c8d
-
Yedidya Feldblum authored
Summary: It is possible to have concurrent calls to `SingletonVault::setType` and `SingletonHolder::createInstance`. In which cases, non-atomic accesses to `SingletonVault::type_` race. Differential Revision: D27904167 fbshipit-source-id: be01ee375d37839629b2e1d64bec99e32cd7e213
-
Yedidya Feldblum authored
Summary: Add a benchmark for `rcu_retire`. Remove perf code from the rcu tests. As a motivating side-effect, removes faulty calls to `printf` which fail to compile across platforms, including mac. Differential Revision: D27902852 fbshipit-source-id: 1698a0fd8ca3731f0b794cb1c2cb08c4bfb5d714
-
- 21 Apr, 2021 2 commits
-
-
Yedidya Feldblum authored
Summary: Using `extern template struct` can be tricky - best to avoid. Use static storage but no longer use static initialization to avoid all issues surrounding ODR, global initializers, etc. Microbenchmarks show no significant hit. Add a global constructor to continue triggering initialization at static initialization time. Differential Revision: D27746718 fbshipit-source-id: c5288c33412a80bb813c8d615794b9773cef323c
-
Yedidya Feldblum authored
Differential Revision: D27859994 fbshipit-source-id: afde93e853a08a3d65f3d817cd2bbad337bfbfce
-
- 20 Apr, 2021 1 commit
-
-
Lee Howes authored
Summary: To encourage migration to safer executors, add transitional *Unsafe names for the old, mutable, global executors. This is consistent with the use of *Unsafe elsewhere in the async framework. (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D26418111 fbshipit-source-id: 414ee238ed4ae43619ce8d671fa5725f0679f67e
-
- 19 Apr, 2021 2 commits
-
-
Xavier Deguillard authored
Summary: It looks like the various CMAKE_CXX_FLAGS_* are simply ineffective, and I'm not sure why, setting CMAKE_CXX_FLAGS does work though, and CMake appears to add some release/debug flags to it when generating Ninja files. Reviewed By: fanzeyi Differential Revision: D27862117 fbshipit-source-id: a89f6182b5bae9a087f8fcfd4c5f9526f91e2adf
-
Yedidya Feldblum authored
Summary: Avoid calling arbitrary user code from within the scope of framework `catch` blocks. Instead, get the current exception in the catch block, save it, and call the user code after. Differential Revision: D27842318 fbshipit-source-id: de3ebabc5c08332701a619a93b6e01bfccc0ea71
-
- 17 Apr, 2021 1 commit
-
-
Giuseppe Ottaviano authored
Summary: Storing the `__PRETTY_FUNCTION__` for logging has an unreasonable cost on (non-strippable) binary size for debug builds, as different template instantiation will produce long, demangled, and non-mergeable strings. If necessary, all the information is retrievable from the debug info (even if the function is inlined), where it's stored in much more efficient form. So, switch to `__func__`, which is stripped. Reviewed By: yfeldblum, luciang Differential Revision: D27825136 fbshipit-source-id: d499084c7e7b24db1cd46aa2b03f4a590c6eddc3
-