- 22 Jan, 2021 4 commits
-
-
Pranjal Raihan authored
Summary: Trying to use `ZeroSizeMutex` in `CallOnce.h` causes a circular dependency: ``` //folly/synchronization:call_once -> //folly/synchronization:call_once-module -> //folly/synchronization:call_once-module-helper -> //folly/synchronization:zero_size_mutex -> //folly/synchronization:baton -> //folly/detail:memory_idler -> //folly/synchronization:call_once ``` The benefits of `folly::once_flag` are as follows: https://www.internalfb.com/intern/diffusion/FBS/browse/master/fbcode/folly/synchronization/CallOnce.h?commit=d0211e9462c39c4655a7d2ff9d313f6fb433d74a&lines=37-42 A fast path is not necessary here because it's just logging within an error case. Exception-proof behavior is not needed because glog does not throw. Reviewed By: yfeldblum, andriigrynenko Differential Revision: D25797067 fbshipit-source-id: 4de20235ff4115b73ab8a2689e7697fc9fe4ba65
-
Andrew McFague authored
Summary: This allows `try_emplace_with` to receive objects by copy-ellision or specific moves; without it, any attempts to pass an object would result in a copy. Reviewed By: praihan, luciang Differential Revision: D26008949 fbshipit-source-id: b43d2dc941c7415e2189668a2b577cc0f1165665
-
Victor Zverovich authored
Summary: `constexpr` is known to be broken in MSVC causing errors when using format string compilation so disable `FMT_COMPILE` there. Reviewed By: neildhar Differential Revision: D26019769 fbshipit-source-id: b823b24d4e73fcf9632f8e648ebb9a4e73c43bb1
-
Orvid King authored
Summary: As per title, as fmt doesn't currently handle them well. Reviewed By: vitaut Differential Revision: D26004515 fbshipit-source-id: dbbd1e6550fa10c4a6fcb0fc5597887c9411ca70
-
- 21 Jan, 2021 7 commits
-
-
Niles Rogoff authored
Differential Revision: D25985696 fbshipit-source-id: 52ede8dc494f8bf1991dbfed455fbc6bbba83d87
-
Orvid King authored
Summary: It wasn't guarded at all, which is causing issues for non-sanitizer builds on platforms without shared library support. Ref: https://github.com/facebook/folly/issues/1507 Reviewed By: meyering Differential Revision: D25970872 fbshipit-source-id: f710e752fdf8ebc5529314d335f4559e690b787a
-
Victor Zverovich authored
Summary: Switch to format string compilation to prevent pulling in too many symbols from the {fmt} library into `folly/detail:ip_address`. This change saves ~64k (fixed cost) in opt mode compared to the current master or ~36k compared to the old code using Folly Format. This doesn't matter for server projects especially since {fmt} will likely be linked anyway but matters for some mobile ones. Reviewed By: Orvid Differential Revision: D25904078 fbshipit-source-id: 56473cf9bf4456a3cb3c5aa375c16393e144b6e1
-
Udip Pant authored
Summary: Allows us to use new APIs in libbpf Reviewed By: anakryiko Differential Revision: D25933787 fbshipit-source-id: f0988caae351760b814eba74f6f716db51f728bd
-
Adam Simpkins authored
Summary: Previously the `EXPECT_THROW_RE()` macro required the regular expression be passed in as a `const char*`. This updates the code to accept a `std::string_view` instead. This allows the API to accept either `const char*` arguments, `std::string`, or `std::string_view` objects. Reviewed By: yfeldblum Differential Revision: D25837542 fbshipit-source-id: e6fb00034046ad7f2810367f946f0135858ed065
-
Dan Melnic authored
Summary: Handle values different from pending_ Reviewed By: kevin-vigor Differential Revision: D25968014 fbshipit-source-id: fd70dd6339d02a6325b237e6c9401d8962b17b51
-
Xiao Shi authored
Summary: This diff moves the gdb related test into `folly/support/test` (as opposed to `tests`) so that CMake rules [here](https://github.com/facebook/folly/blob/194b7732bd65d56b4afb58b6d9e411c1b014b3e3/CMakeLists.txt#L155) will exclude these files from OSS library builds--also to maintain consistency with other test folder names under folly. I still separated out the auto gdb breakpoint functionality into GdbUtil.h so that if MSVC users want to manually compile and use the gdb script tests, they have the option to do so. Re: asm syntax on MSVC: https://gcc.godbolt.org/z/1rMh4v Fixes #1515. Reviewed By: Orvid Differential Revision: D25947735 fbshipit-source-id: 97e75e972fcf8eea280df804c98c400f03c37496
-
- 20 Jan, 2021 2 commits
-
-
Pedro Eugenio Rocha Pedreira authored
Summary: Adding protobuf manifest, which will be used to compile f4d/velox. Reviewed By: spershin Differential Revision: D25926384 fbshipit-source-id: 08a2dffc9e9baa0d393e5f648ce99ca032a9df5f
-
Pedro Eugenio Rocha Pedreira authored
Summary: Adding lzo manifest, which will be used by f4d/velox Reviewed By: amitkdutta Differential Revision: D25926434 fbshipit-source-id: 4d7efe5eba7cdca1f682fbd4cfd6ff0337ce7c19
-
- 19 Jan, 2021 1 commit
-
-
Stepan Palamarchuk authored
Summary: The current code is calling `runInMainContext` on the FiberManager that we're scheduling to, which will do nothing if we're calling it from another fiber manager. This will assume fiber stack as a main stack which is incorrect. This diff fixes it to call `folly::fibers::runInMainContext` that would properly call `runInMainContext` on the active FiberManager. Reviewed By: andriigrynenko Differential Revision: D25116215 fbshipit-source-id: 1d13f436a0599c077e7531dc1fe75f3a143e3478
-
- 16 Jan, 2021 1 commit
-
-
Giuseppe Ottaviano authored
Summary: The implementation doesn't need explicit locking or condition variables, everything can be done with a single concurrent queue. Reviewed By: yfeldblum Differential Revision: D25919429 fbshipit-source-id: a2b1e6332305174ba41d02fd79d9525a12b82218
-
- 15 Jan, 2021 3 commits
-
-
Giuseppe Ottaviano authored
Summary: Make it consistent with the other executors. Reviewed By: yfeldblum Differential Revision: D25926045 fbshipit-source-id: ad2f101fbba918fe2a421e394870bf67c0a044b9
-
Xiao Shi authored
Summary: As title, move gdb pretty printers from internal repo to OSS repo Reviewed By: yfeldblum Differential Revision: D25684325 fbshipit-source-id: b7999dee1379801ee68553de64f16ac4db78b174
-
Niles Rogoff authored
Summary: This took a lot of cmake fuckery. I am guessing it will break the current travis-ci.org based build, since it no longer downloads gflags. As I put this diff up, mvfst (a dependency of quic (a dependency of proxygen)) is not building right now due to another diff - a fix is in progress but isn't landed yet. I applied the fix locally for the test plan, but didn't include it in the diff. Reviewed By: snarkmaster Differential Revision: D25651851 fbshipit-source-id: b4f15ac7fa5293123710fe367c20d355c0970c42
-
- 14 Jan, 2021 1 commit
-
-
Pranjal Raihan authored
Summary: `folly::MicroLock` is actually 4 locks, each using 2 bits. In cases we don't need all the slots, we can use the other bits to store some data which is loaded/stored atomically with locking and unlocking. There is no change in existing `MicroLock` usage behavior. Reviewed By: davidtgoldblatt Differential Revision: D25842148 fbshipit-source-id: 5f6ff705c35529d279629ccc256a9c210907ea5c
-
- 13 Jan, 2021 3 commits
-
-
Pranjal Raihan authored
Summary: This was forgotten in a refactor. Reviewed By: Mizuchi Differential Revision: D25903164 fbshipit-source-id: 419131987a886f0d8d057b5b04b012d1162e564d
-
Pedro Eugenio Rocha Pedreira authored
Summary: `extra_cmake_defines` are extra flags that are passed to cmake when compiling each one of the dependencies. For instance: ``` $ ./opensource/fbcode_builder/getdeps.py build f4d --extra-cmake-define='{"CMAKE_CXX_FLAGS": "-mavx2 -mfma -mavx -mf16c -march=native"}' ``` It takes a json map as input, which can take a list of defines (key value pairs). Reviewed By: wez Differential Revision: D25855781 fbshipit-source-id: 7f4fef2c66f4d12f23c8d7086d6a4f24fcc01ff7
-
Michael Park authored
Summary: This patch performs SFINAE-friendly invocation in `FOLLY_CREATE_STATIC_MEMBER_INVOKER` in order for invocability tests to return `false` in the situation where the member is not even available. For example, given: ``` FOLLY_CREATE_STATIC_MEMBER_INVOKER(foo_invoker, foo); ``` With this diff, something like `std::is_invocable_v<foo_invoker, HasNoFoo>` yields `false` rather than a compilation error. This brings `FOLLY_CREATE_STATIC_MEMBER_INVOKER` in line with `FOLLY_CREATE_FREE_INVOKER` and `FOLLY_CREATE_MEMBER_INVOKER`. Reviewed By: yfeldblum Differential Revision: D25878262 fbshipit-source-id: 150ae6b2c71941317bc02de20720fed014639bf5
-
- 12 Jan, 2021 6 commits
-
-
Pranjal Raihan authored
Summary: The lazy initialization logic can now be simplified. Reviewed By: andriigrynenko Differential Revision: D25675031 fbshipit-source-id: 048328220a2b02c13a672bebe47b79521d5f5e7a
-
Pranjal Raihan authored
Summary: `folly::DelayedInit` serves a similar use case to `folly::Lazy` but is suitable for data members and is thread-safe. The summary in `DelayedInit.h` provides a good overview. Reviewed By: andriigrynenko Differential Revision: D25671587 fbshipit-source-id: 1933b15fdc7207a52067658188ca4d5724d9c40b
-
Victor Zverovich authored
Summary: Migrate a couple of uses of Folly Format to fmt. Reviewed By: simpkins Differential Revision: D20152350 fbshipit-source-id: fb9798f5ff458ee03e1c01f839dc1c55796d0eaa
-
Yinan Zhang authored
Summary: This utility is meant for usage cases where - the same `mallctl` command is called many times, and - performance is important. Reviewed By: yfeldblum Differential Revision: D23638723 fbshipit-source-id: 6cab9acb1121ef4f46bf7acbe29d3877005b66b1
-
Alfred Fuller authored
Summary: All changes were automated Reviewed By: Orvid Differential Revision: D25507587 fbshipit-source-id: fe757e6919793e9b8b28d6c1ce6f064d7e2623fb
-
Pranav Thulasiram Bhat authored
Summary: See docblock in new test. If the FiberManager weakref is created after the AsyncioExecutor weakref, then the native FiberManager object may be destroyed without being drained. Unfortunately, there's no way to enforce an ordering between the destructors here (since weakrefs are cleaned up in inverse order of creation). This diff adds a `__dealloc__` method to AsyncioExecutor to drain the native FiberManager Reviewed By: yfeldblum Differential Revision: D25797920 fbshipit-source-id: d1a548ebd67e7d9153eb43b169bf009a6a986e68
-
- 11 Jan, 2021 3 commits
-
-
Shai Szulanski authored
Summary: Update name to match usage of Try as tri-state, since this method also throws if the Try is empty Reviewed By: yfeldblum Differential Revision: D25737810 fbshipit-source-id: a4166153362f07353d212216fbaf7105867eef2a
-
Yedidya Feldblum authored
Summary: Tweak `is_coroutine_handle` detail trait. No need for leading `_` and let it be a trait variable. Reviewed By: iahs Differential Revision: D25864424 fbshipit-source-id: 2f0723fcb3c97c6a0972056999f1d9574695c30b
-
Andrii Grynenko authored
Summary: 1. Patch the test to remove racy behavior 2. Added another test for a case where the timeout is hit. Reviewed By: yfeldblum Differential Revision: D25854609 fbshipit-source-id: c1694e5b46b9645dc3e71a12ddc8ed12e8cf270c
-
- 10 Jan, 2021 2 commits
-
-
Dan Melnic authored
Summary: Fix typo Reviewed By: yfeldblum Differential Revision: D25861463 fbshipit-source-id: c24a521572229cbc5892a4da10999dcff94741c7
-
Andres Suarez authored
Reviewed By: igorsugak Differential Revision: D25849195 fbshipit-source-id: 611df723a38b5c2a7ba5184c63fdeeed1ed27025
-
- 09 Jan, 2021 5 commits
-
-
Chang Kyu Lee authored
Summary: Adds a test for ConcurrentHashMap::reserve(). Reviewed By: magedm Differential Revision: D25853643 fbshipit-source-id: 39404105c88d6dc38cdd0b399c646affad1b26e0
-
Maged Michael authored
Summary: Fixes a bug when a call to reserve leads to calling rehash with a buck_count value that is not a power of two and/or less than the current count. The rehash algorithm depends on the bucket_count being a power of two and that the count does not decrease. The fix: Ensure that reserve calls rehash with a power of two argument and that rehash is skipped if the new count is not greater than the old one. Reviewed By: davidtgoldblatt Differential Revision: D25852794 fbshipit-source-id: ae1ae6cfbcbd0659becc14c703920e9505181109
-
Alfred Fuller authored
Summary: All changes were automated Reviewed By: Orvid Differential Revision: D25507562 fbshipit-source-id: ffed8f0e41d3581242b4e8e00bfd1fa6ee3e299b
-
Alex Guzman authored
Summary: Sets out the foundation of io_uring support into fizz and enables support in the fizz tool Reviewed By: mingtaoy Differential Revision: D23592810 fbshipit-source-id: 6f995c99541bc2aeca3cdfb7d84ebd2d25eb1f5e
-
Andrii Vasylevskyi authored
Summary: Same code as in oneIn() explicit check for arg 0, 1. Reviewed By: yfeldblum Differential Revision: D25838957 fbshipit-source-id: 36ead588e435f116d0870ba45a181979c591c3f2
-
- 08 Jan, 2021 2 commits
-
-
Andrii Grynenko authored
Reviewed By: yfeldblum Differential Revision: D25689803 fbshipit-source-id: 0d5f6093d814c58e2d90f9042b7bad65ff8d8ade
-
Yedidya Feldblum authored
Summary: Let `folly::FunctionRef` detect empty-callable ctor arguments like `folly::Function` does. Handles pointers which may be nullptr. Reviewed By: luciang Differential Revision: D25840538 fbshipit-source-id: 8cfccd57aa545ffc95807876d486ecf94aba8d62
-