- 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 5 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
-
Oded Horovitz authored
Summary: As title. Expose the useful portable mlock2() wrapper. Reviewed By: alikhtarov Differential Revision: D20239849 fbshipit-source-id: 0fa776faf29ad69e551dfbe6eb69369560800a0e
-
Jason Meisel authored
Summary: Cast from unsigned to signed *before* negating. The resulting assembly code is the same, but there's no warning. Reviewed By: yfeldblum, jdonald Differential Revision: D19588115 fbshipit-source-id: d0d61ab0543211e2399f42a86a7a7a2366679d37
-
Dave Rigby authored
Summary: The absence of GFlags is already partially optional - portability/GFlags.h defines a number of stub macros / clases if FOLLY_HAVE_LIBGFLAGS is false. However the top-level CMake rules don't correctly handle when GFlags isn't present - they unconditionally add GFlags-related variables to CMAKE_REQUIRED_xxx variables. Additionally there are a couple of source files which should not be compiled if GFlags isn't available. Pull Request resolved: https://github.com/facebook/folly/pull/1325 Differential Revision: D20252030 Pulled By: yfeldblum fbshipit-source-id: 7c3441e8b2850d68df125fb9c14b8417f4d08b55
-
- 05 Mar, 2020 2 commits
-
-
Mark Santaniello authored
Summary: Support the brand-new TCMalloc version that was just released. Reviewed By: luciang Differential Revision: D19943852 fbshipit-source-id: 10ae07051d2bc56a502ee0d5e5767035cf53794f
-
Yixian Jiang authored
Summary: Replace the methods to get CPU and memory usage statistics: - For the memory: use `VmRSS` of `/proc/[pid]/status`: http://man7.org/linux/man-pages/man5/proc.5.html - For the CPU%: calculate the process is occupied how much percentage of the CPU time, use `getrusage()`: http://man7.org/linux/man-pages/man2/getrusage.2.html - Implemented like the sigar: https://our.intern.facebook.com/intern/diffusion/FBS/browse/master/third-party/sigar/src/sigar.c?commit=4f945812675131ea64cb3d143350b1414f34a351&lines=111-169 - Formula: - CPU% = `process used time` during the period / `time period` * 100 - `time period` = current query timestamp - last query timestamp - `process used time` = current `process total time` - last query `process total time` - `process total time` = CPU time used in user mode + CPU time used in system mode // get from the API `ru_utime` and `ru_stime` Remove the `fbzmq::ResourceMonitor` and `sigar`: - Change and rename the UT - `ResourceMonitorTest.cpp` -> `SystemMetricsTest.cpp` - `ResourceMonitor` -> `SystemMetricsTest` in `openr/tests/OpenrSystemTest.cpp` - Remove `ResourceMonitor` code and dependency for `Watchdog` and `ZmqMonitor` - Remove `sigar` dependency used in building Reviewed By: saifhhasan Differential Revision: D20049944 fbshipit-source-id: 00b90c8558dc5f0fb18cc31a09b9666a47b096fe
-
- 04 Mar, 2020 5 commits
-
-
Haijun Zhu authored
Summary: This seems to not happen reliably and causes rss to grow. The `__dealloc__` cannot fix it completely, although I verified it is called. So calling it explicitly seems to guarantee it to happen. Reviewed By: yfeldblum Differential Revision: D20206887 fbshipit-source-id: 6285a8e8943a53d20714e54efd3220a545010102
-
Yang Chi authored
Summary: as title, just to add a mock function Reviewed By: yfeldblum, lnicco Differential Revision: D20130909 fbshipit-source-id: 469d904cce93dc8e88c5dc4728b1f1fbd0baf798
-
Giuseppe Ottaviano authored
Summary: We have noticed some inappropriate uses of `assume_unreachable()`, and we believe that the documentation does not convey strongly enough that it is not an assertion. This diff moves the implementation to a separate header (as the assertions in there might be misleading) and fleshes out more the intended use cases. Reviewed By: yfeldblum, mkatsevVR, luciang Differential Revision: D20182339 fbshipit-source-id: 8a3be1ada06dead7ea936971c42c4f30389fc23a
-
Yedidya Feldblum authored
Summary: [Folly] Fix `small_vector::insert` with non-random-access iterator arguments. Closes https://github.com/facebook/folly/issues/1322. Reviewed By: ot, terrelln Differential Revision: D20150453 fbshipit-source-id: 184e748dcbb7cb60318b5f0a3104d9aeb8352d7b
-
Amlan Nayak authored
Summary: Codel is statically initialized with some default target delay and interval period. It would be useful to have the ability to update these parameters at runtime to fine tune load shedding to a given use case. Adding methods here to update the target delay and interval parameters. Reviewed By: yfeldblum Differential Revision: D19987838 fbshipit-source-id: 4d67277f38037840883f6d9d5fd2d5f9be760f44
-
- 03 Mar, 2020 3 commits
-
-
Ján authored
Summary: `type_traits` needed for `std::enable_if_t` Reviewed By: yfeldblum, Orvid Differential Revision: D20196749 fbshipit-source-id: 4d4e44c523959dda1f04b452d65880ca3401e036
-
Phil Willoughby authored
Summary: Might as well store the count of newlines in the Log Message - as the field is already padded to <pointersize> bytes by the alignment requirements of the field either side it will not use any more space than the existing `bool` Reviewed By: simpkins Differential Revision: D20200298 fbshipit-source-id: 84cc52898069eae1af5bd0f103d4ab3177c45206
-
Dan Melnic authored
Summary: Add support for futures folly::HighResDuration Reviewed By: kevin-vigor Differential Revision: D19981652 fbshipit-source-id: 4a321fda487d5acdee04d138b0e4f0f10a4119f1
-