- 18 Mar, 2020 6 commits
-
-
Dan Melnic authored
Summary: Allow the WTCallback to be used with timer managers that have timeoutExpired methods Reviewed By: kevin-vigor Differential Revision: D20503031 fbshipit-source-id: df91f1e2531f5c54943d3540bdf7c3d357c9fda1
-
TJ Yin authored
Summary: Sometimes it fails to throw exception in [Codel::setOptions](https://github.com/facebook/folly/blob/master/folly/executors/Codel.cpp#L109), since it failed the check `interval <= delay`. The reason is that both interval and delay are [POD](https://github.com/facebook/folly/blob/master/folly/executors/Codel.h#L80-L81), thus both are not initialized by default. Using them without initialization is UB. In x86, they will have random value (since x86 doesn't have trap representation), thus sometimes it passes, sometimes it fails. Based on comment, it looks like the intention is copying the `options` from default initialized `Codel`. Reviewed By: amlannayak Differential Revision: D20499449 fbshipit-source-id: e12de0b42c02a8bf6379ba7fd224e0ae173945f0
-
Dan Melnic authored
Summary: Add eb_signal_set, eb_timer_set methods to be in sync with libevent (Note: this ignores all push blocking failures!) Reviewed By: kevin-vigor Differential Revision: D20513498 fbshipit-source-id: be8d5d0ca362bdaa86cc161f481aea93cc757c75
-
Lee Howes authored
Summary: A thread-local query for the current executor. Grounding feature for logging operations. Reviewed By: andriigrynenko Differential Revision: D20070133 fbshipit-source-id: e320d2a3d97744b91c07a6060708e5cefc517cb7
-
Maged Michael authored
Summary: Make the hazard pointer-based implementation of request context the default one by setting `folly_reqctx_use_hazptr` to true by default. Reviewed By: yfeldblum Differential Revision: D19145252 fbshipit-source-id: 5dd68fb92561685a6ee35d8b3b03a1dcf7e1e356
-
Dmytro Stechenko authored
Summary: while compiling on windows see duplicated symbols: ``` lld-link: error: duplicate symbol: public: static char const *const folly::dynamic::TypeInfo< class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>>::name in buck-out\dev\gen\crypto\cat\cpp\tests\crypto_auth_token_util_test#compile-CryptoAuthTokenUtilTest.cpp.obj1f5bc0bc,windows-x86_64\out.obj and in libdynamic.lib(out.obj) ``` Reviewed By: yfeldblum Differential Revision: D20426321 fbshipit-source-id: 4e0346c624ad12561adb14f3a2e5f6e15bbbba26
-
- 17 Mar, 2020 4 commits
-
-
Brian Gesiak authored
Summary: This workaround is no longer necessary for a Clang that includes patch https://reviews.llvm.org/D76118. Reviewed By: ispeters, lewissbaker Differential Revision: D20486353 fbshipit-source-id: cab137ed557ba8aa6ec86ec7011cc4fc7c46fe82
-
Dmytro Stechenko authored
Summary: building on windows fails: ``` buck-out/cells/fbsource/gen/xplat/third-party/glog/glogWindows#header-mode-symlink-tree-only,headers\glog/logging.h:698:32: error: comparison of integers of different signs: 'const unsigned long long' and 'const int' [-Werror,-Wsign-compare] buck-out/dev/gen/folly/synchronization/hazptr#header-mode-symlink-tree-only,headers\folly/synchronization/HazptrObj.h:397:13: note: in instantiation of function template specialization 'google::Check_EQImpl<unsigned long long, int>' requested here DCHECK_EQ(reinterpret_cast<uintptr_t>(p) & 7, 0) << p << " " << i; ``` Reviewed By: yfeldblum Differential Revision: D20482798 fbshipit-source-id: 4b661121401890cec113905fc6b53cd9189fcca0
-
Luca Niccolini authored
Summary: e.g. debian doesn't seem to have it ``` $ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux bullseye/sid" NAME="Debian GNU/Linux" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" ``` Reviewed By: mjoras Differential Revision: D20483097 fbshipit-source-id: 722397ff994336884ed2e5bbf8fe517d4dcf4e6c
-
David Carlier authored
Summary: clang being more strict with obsolete C++14 api, has completely disabled them in this context. Pull Request resolved: https://github.com/facebook/folly/pull/1317 Reviewed By: luciang, markisaa Differential Revision: D20154780 Pulled By: yfeldblum fbshipit-source-id: 1ff36fecd3406802c3f393dfdd5dbe2f30656567
-
- 16 Mar, 2020 3 commits
-
-
Lee Howes authored
Summary: Retrying was modified to support SemiFuture returning policy and function, but incorrectly handled the return type propagation. Fix the problem and add a test to verify. Reviewed By: yfeldblum Differential Revision: D20462982 fbshipit-source-id: 97b4dad6d83dbbfe7f1846b457bf915c14b9f31a
-
Jeff McGlynn authored
Summary: Conv.h's detail::digitsEnough was not decomposing to a constexpr on iOS/Mac toolchains, which resulted in the following call becoming a runtime VLA: ``` char buffer[detail::digitsEnough<unsigned __int128>() + 1]; ``` Update to use `numeric_limits<>::digits10`, which allows this function to evaluate at compile-time on iOS/Mac. Reviewed By: yfeldblum Differential Revision: D20440659 fbshipit-source-id: d086e367eec0d3b2f35465525cb7406e746e6df7
-
Yedidya Feldblum authored
Summary: Unqualify nearly all uses of `folly::AsyncUDPSocket::ReadCallback::OnDataAvailableParams` since nearly all uses already have `OnDataAvailableParams` in scope. Differential Revision: D20450063 fbshipit-source-id: c0fd49a7eace44a6edc8086762c44753224788dd
-
- 15 Mar, 2020 3 commits
-
-
Pádraig Brady authored
Summary: This code is new in 9.3.0, introduced upstream with: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ed920373 Unless we qualify folly::reduce() we get the clash in P127472223 when running the test plan. Reviewed By: meyering Differential Revision: D20461173 fbshipit-source-id: 41b21e9215571da2cbd2ef7f817e2d9999083033
-
Yedidya Feldblum authored
Summary: [Folly] `FOLLY_SSSE`, for testing compiler mode support for SSSE3 intrinsics. Reviewed By: markisaa Differential Revision: D20414435 fbshipit-source-id: 077a78f880ea8dce44f1aced38a6cca08cdd1f65
-
Yedidya Feldblum authored
Summary: [Folly] Move remove_reference_wrapper to coro traits, since this is not a language-level trait and is there to be used in the coro library. Reviewed By: iahs Differential Revision: D20301017 fbshipit-source-id: aa78488cc5138e6ade9dcbc99ec1b75b65c74c78
-
- 14 Mar, 2020 3 commits
-
-
Daryl Johnas Sison authored
Differential Revision: D20443631 Original commit changeset: 03e8210a64a3 fbshipit-source-id: 42621768beab530619aba877015dd48d509bc62b
-
Scott Ramsby authored
Summary: `unsigned int` is a more typical definition of the mode_t type on Linux systems, which is what this is trying to emulate. Also guard by checking that HAVE_MODE_T isn't already define to allow clients to suppress its definition in cases where other client-used libraries (e.g. wxWindows) have their own definition which may conflict. Pull Request resolved: https://github.com/facebook/folly/pull/1335 Reviewed By: yfeldblum Differential Revision: D20408879 Pulled By: scramsby fbshipit-source-id: 511484f6513501bf595ccb9cdfb893c9d5761320
-
Laurent Stacul authored
Summary: Compiling with gcc 10.0.1 and -std=gnu++2a, we have the following errors: ``` folly/FBString.h:1013:33: error: no type named 'reference' in 'class std::allocator<char>' 1013 | typedef typename A::reference reference; | ^~~~~~~~~ folly/FBString.h:1014:39: error: no type named 'const_reference' in 'class std::allocator<char>' 1014 | typedef typename A::const_reference const_reference; ``` This is due to the fact many members in `std::allocator` have been remove in C++20: https://en.cppreference.com/w/cpp/memory/allocator We also have this one due to the new way C++ resolves the comparison operators: ``` folly/dynamic-inl.h:854:20: error: ambiguous overload for 'operator!=' (operand types are 'folly::dynamic::const_item_iterator' and 'folly::dynamic::const_item_iterator') 854 | return find(key) != items().end() ? 1u : 0u; | ~~~~~~~~~ ^~ ~~~~~~~~~~~~~ | | | | | folly::dynamic::const_item_iterator | folly::dynamic::const_item_iterator In file included from folly/dynamic-inl.h:25, from folly/dynamic.h:796, from folly/dynamic.cpp:17: folly/detail/Iterators.h:80:8: note: candidate: 'bool folly::detail::IteratorFacade<D, V, Tag>::operator==(const D&) const [with D = folly::dynamic::const_item_iterator; V = const std::pair<const folly::dynamic, folly::dynamic>; Tag = std::f orward_iterator_tag]' (reversed) 80 | bool operator==(D const& rhs) const { | ^~~~~~~~ folly/detail/Iterators.h:98:3: note: candidate: 'typename std::enable_if<std::is_convertible<D, D2>::value, bool>::type folly::detail::IteratorFacade<D, V, Tag>::operator==(const D2&) const [with D2 = folly::dynamic::const_item_iterator; D = folly::dynamic::const_item_iterator; V = const std::pair<const folly::dynamic, folly::dynamic>; Tag = std::forward_iterator_tag; typename std::enable_if<std::is_convertible<D, D2>::value, bool>::type = bool]' (reversed) 98 | operator==(D2 const& rhs) const { | ^~~~~~~~ folly/detail/Iterators.h:84:8: note: candidate: 'bool folly::detail::IteratorFacade<D, V, Tag>::operator!=(const D&) const [with D = folly::dynamic::const_item_iterator; V = const std::pair<const folly::dynamic, folly::dynamic>; Tag = std::f orward_iterator_tag]' 84 | bool operator!=(D const& rhs) const { | ^~~~~~~~ folly/detail/Iterators.h:103:8: note: candidate: 'bool folly::detail::IteratorFacade<D, V, Tag>::operator!=(const D2&) const [with D2 = folly::dynamic::const_item_iterator; D = folly::dynamic::const_item_iterator; V = const std::pair<const f olly::dynamic, folly::dynamic>; Tag = std::forward_iterator_tag]' 103 | bool operator!=(D2 const& rhs) const { | ^~~~~~~~ ``` Pull Request resolved: https://github.com/facebook/folly/pull/1329 Reviewed By: ot, igorsugak Differential Revision: D20443631 Pulled By: yfeldblum fbshipit-source-id: 03e8210a64a3eeaefb6f14afaddf45be882e3ba6
-
- 13 Mar, 2020 5 commits
-
-
Max Katsev authored
Summary: Both operators use their own copy of the container (eg line 104), so mutating it should be ok Reviewed By: ot Differential Revision: D19170228 fbshipit-source-id: a53094bdbd3fb7b5028cf7ed4e0b073dd919b2d7
-
Yedidya Feldblum authored
Summary: [Folly] Add `#include <bit>` in `folly/lang/Bits.h` when that header, which is introduced in C++20, is available. Fixes https://github.com/facebook/folly/issues/1333. Closes https://github.com/facebook/folly/pull/1334. Reviewed By: luciang, markisaa Differential Revision: D20369239 fbshipit-source-id: fee8682c23107a1da17c35abf5a9e16bb5177cdd
-
Mohamad Gebai authored
Summary: When n = 1, `oneIn` is always true. This can be used to avoid generating a random number. Reviewed By: yfeldblum Differential Revision: D20267645 fbshipit-source-id: 0c0bde1e80389f11ffdb0ad0f0de053d47b9f760
-
Shrikrishna Khare authored
Summary: Next OpenNSA release with increased stack size (needed for FBOSS) is available. Start linking with it. Differential Revision: D20062997 fbshipit-source-id: 9938270c322087ac3990861aa1ddd3b9ea1148ac
-
Dan Melnic authored
Summary: Add UDP GRO support Reviewed By: mjoras Differential Revision: D20347326 fbshipit-source-id: be3c31f070c4f2c1ef84f9e2df60f49a5fcabd93
-
- 12 Mar, 2020 6 commits
-
-
Victor Zverovich authored
Summary: Move `toStdString` to `FBString.h` because it's fbstring-related and remove the dependency between `String.h` and `FBString.h`. This is possible because the only other use of fbstring in `String.h` is removed in previous diff. Reviewed By: yfeldblum Differential Revision: D20195591 fbshipit-source-id: b5ff7c918669e063e24bf91155a2496f82d7e975
-
Dan Melnic authored
Summary: Add ThreadWheelTimekeeperHighRes class Reviewed By: LeeHowes Differential Revision: D20355093 fbshipit-source-id: b76563a3706d7732b490a88096fed484954820e5
-
Mohamad Gebai authored
Summary: It looks like that test file was deleted, but it was still referenced in a CMakeLists.txt file. Reviewed By: yfeldblum, Gownta Differential Revision: D20365343 fbshipit-source-id: 40792bb9c526e1aef48062b0e560646bdcf201b8
-
Maged Michael authored
Summary: Add support for onClear() callback function to RequestData. The callback is to be executed on the last clearing of RequestData. This typically happens upon the destruction of the last RequestContext that contains the RequestData or due to explicit calls to RequestContext::clearContextData that remove the RequestData from the RequestContext. The onClear() callback is executed exactly once. If there are no calls to clearContextData, then onClear is executed upon the destruction of the last RequestContext that refers to the RequestData. If there are calls to clearContextData, then onClear is executed upon the removal of the last reference to the RequestData from a RequestContext. RequestData::hasCallback() applies only to onSet() and onUnset() which may be called multiple times, whereas onClear() is called exactly once. If a class derived from RequestData overrides onClear and either or both of onSet and onUnset, then care must be taken that the callbacks are mutually safe, as it is possible for the execution of onClear to be concurrent with executions of onSet and onUnset. Motivation: Some uses of RequestContext::clearContextData expect the immediate destruction of associated RequestData. The hazard pointer-based implementation of RequestContext guarantees only that all associated RequestData is destroyed before the completion of the destructor of the RequestContext. This callback provides users of RequestContext more control of the timing of executing actions related to clearing the data. The addition of this capability is intended to provide a tool to eliminate differences in timing of executing actions between the two implementations of RequestContext (hazard pointer-based vs. read lock-based). Also, fixes a minor bug in request_context_test, where the key "test2" was used in two tests (setIfAbsentTest and deadlockTest) without being cleared, which generated a warning when the tests were run in the same process. Reviewed By: davidtgoldblatt Differential Revision: D20332008 fbshipit-source-id: c9cefffb28c8da098e97f851f31d29a1bf704061
-
Yixian Jiang authored
Summary: Clean the sigar build dependency completely under: - fbcode/fbzmq/public_tld/build/... - fbcode/openr/public_tld/build/... Delete files: - fbcode/opensource/fbcode_builder/manifests/sigar - fbcode/opensource/fbcode_builder/specs/sigar.py Reviewed By: steven1327 Differential Revision: D20376067 fbshipit-source-id: 3321a14df2551525acee605028ef06a04cda7c6a
-
Alex Guzman authored
Summary: This is mainly used for logging, and we can elide an unnecessary copy in some cases. Reviewed By: mingtaoy Differential Revision: D20402430 fbshipit-source-id: 79b73792a69cf2817ffb88b07d9973139c3c67bb
-
- 11 Mar, 2020 2 commits
-
-
Dan Melnic authored
Summary: Split WTCallback cod Reviewed By: LeeHowes Differential Revision: D20355082 fbshipit-source-id: 9ead4905cafeef27a9e2956fc50ebd59098cb80e
-
Dan Melnic authored
Summary: Use decltype(event::ev_fd) instead of #ifdef (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum, kevin-vigor Differential Revision: D18525100 fbshipit-source-id: 7cef32def7b40c71b2298f9dc354fbe63607fb8e
-
- 10 Mar, 2020 4 commits
-
-
Laurent Stacul authored
Summary: As written in the documentation, {fmt} should be built alongside folly. This is not possible in my case. My usecase is to provide some kind of small distribution of shared libraries that can be installed on any systems. Hence I really need to have libfmt treated as a normal shared lib. Moreover, libfmt can be consumed on our side as a normal library outside on cmake. We do not provide the cmake config file which are strongly dependent on the system on which libfmt is installed. My proposal is to first look for the fmt-config.cmake as it is now but in case of cmake support is not provided by system, we fall back to a normal library lookup. Pull Request resolved: https://github.com/facebook/folly/pull/1328 Reviewed By: simpkins Differential Revision: D20312046 Pulled By: yfeldblum fbshipit-source-id: 2d6b4917b37a8ed1d553600599702259db22c212
-
Dmytro Stechenko authored
Reviewed By: Orvid Differential Revision: D20353603 fbshipit-source-id: 1910261be637237923b1f1d6a56fc954554176d2
-
Victor Zverovich authored
Summary: The result of `errnoStr` is often converted to `std::string` so returning `fbstring` adds an extra copy. Make it return `std::string` instead. This will also allow removing dependency between `String.h` and `FBString.h`. (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D20195395 fbshipit-source-id: 0dc65f1566911156be3fcb715dd105c58f2a8822
-
Wez Furlong authored
Summary: Ideally we'd be using mkscratch, but this still isn't shipped to our Windows systems. Pick a path that is more friendly to our corp windows environment by default. Reviewed By: pkaush Differential Revision: D20342277 fbshipit-source-id: c85bccee6701adc03b26c92ba217b18bd684257a
-
- 08 Mar, 2020 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Cut `CachelinePadded` after migrating all uses to `cacheline_aligned`. Reviewed By: aary Differential Revision: D19657696 fbshipit-source-id: d2e5b4695bdc3734340723d5d3681e724734691e
-
Laurent Stacul authored
Summary: When Gtest cannot be discovered by CMake config file, the tests fails to compile: ``` In file included from /home/docker/opensource/folly/folly/test/common/TestMain.cpp:23: /home/docker/opensource/folly/folly/portability/GTest.h:32:10: fatal error: gtest/gtest.h: No such file or directory 32 | #include <gtest/gtest.h> | ^~~~~~~~~~~~~~~ ``` This PR fixes this problem with a classic `find_package`. Pull Request resolved: https://github.com/facebook/folly/pull/1331 Differential Revision: D20323404 Pulled By: yfeldblum fbshipit-source-id: 2e41f99172c504063c00c45a9fa5c08a26bcc0c8
-
- 06 Mar, 2020 2 commits
-
-
Lee Howes authored
Summary: Migration from Future-returning executor-erasing collectX forms to SemiFuture-returning forms, that are less risky in particular with coroutines. An earlier change added collectXSemiFuture. This diff adds collectXUnsafe as a migration path. Reviewed By: yfeldblum Differential Revision: D20255061 fbshipit-source-id: 379b5ed95aa7782aa121dba8e84cb48f802a57cd
-
Lee Howes authored
Summary: SingletonThreadLocal is not needed by Future.cpp. Reviewed By: Orvid Differential Revision: D20142400 fbshipit-source-id: d0f3b7c1bbef03226c8d6264abeb96822587a465
-