- 23 Jan, 2018 7 commits
-
-
Adam Simpkins authored
Summary: On unix platforms, check to see if the compiler supports the `-faligned-new` and `-Wno-noexcept-type` flags before adding them to the compiler command line flags. Reviewed By: yfeldblum Differential Revision: D6787808 fbshipit-source-id: d34af5ae4251ad3639fdaa1a8d5cb2df4b10e986
-
Michael Lee authored
Summary: A lot of shadowed variables in tests. Simple renaming should suffice. Reviewed By: yfeldblum Differential Revision: D6786138 fbshipit-source-id: 22c1c4d7cac13b367ed534a3f1d20714150b39f9
-
Pádraig Brady authored
Summary: This clashes with std::make_optional with -std=gnu++17 giving: call of overloaded 'make_optional(std::__cxx11::basic_string<char>)' is ambiguous Reviewed By: yfeldblum Differential Revision: D6780579 fbshipit-source-id: fea8c76869e4d9b744fc3182379328a91879b1d2
-
Nick Terrell authored
Summary: This reverts commit 1249d203df610cb29c16e03f7a06ea90aea80418 bypass-lint An infra SEV is better than not reverting this diff. If you copy this password, see you in SEV Review! cause_a_sev_many_files Differential Revision: D6745720 fbshipit-source-id: b357d0d8c42388d6f322cbb8f6d8958f7f02df54
-
Nick Terrell authored
Summary: Log bytes before/after (de)compression to the logging backend. Use the codec name in the key, and for lz4/zstd also include the library version and compression level. I chose the keys such that each individual piece as <= 15 characters, to be inlined. However, I chose readability of the keys over trying to squeeze the entire key in 15 characters. Reviewed By: yfeldblum Differential Revision: D6745720 fbshipit-source-id: 1249d203df610cb29c16e03f7a06ea90aea80418
-
Nick Terrell authored
Summary: Adds an open source counters interface. Reviewed By: yfeldblum Differential Revision: D6609118 fbshipit-source-id: cc326443339b88acdd11e4184eb0c82d786732c2
-
Pádraig Brady authored
Summary: Move the coarse_steady_clock definition outside the c++ < 17 specific defines, as otherwise it's not defined when using -std=gnu++17. Reviewed By: yfeldblum Differential Revision: D6780601 fbshipit-source-id: 35cc5aa10db7d890e17bf03cc5e80803a9356d7a
-
- 20 Jan, 2018 2 commits
-
-
Maged Michael authored
Summary: Keeping all variables that interact with hazptr_domain::rcount_ signed int to avoid conversion errors. Reviewed By: yfeldblum Differential Revision: D6754593 fbshipit-source-id: e283f127a112a529a0e98eb82b6061b44aa9d2ca
-
Yedidya Feldblum authored
Summary: [Folly] Remove `unsafe` tag and add `presorted` tag. There are varieties of unsafety, so let us be more explicit about which variety of unsafety is invoked in each case. Differential Revision: D6758520 fbshipit-source-id: d198a3c7601971460f91acc7787c9da02ae283c0
-
- 19 Jan, 2018 14 commits
-
-
Adam Simpkins authored
Summary: folly/memory/Malloc.h was included but not needed. Reviewed By: yfeldblum Differential Revision: D6757598 fbshipit-source-id: 241b939724b21a94739e14335ddfaadfcd00dda3
-
Nathan Bronson authored
Summary: Somebody reported compilation issues with the closure in post()'s assert, resulting in "error: lambda-expression in unevaluated context". While I haven't been able to reproduce the problem locally, it is easy enough to work around in this case. Reviewed By: djwatson, mcallahan Differential Revision: D6759739 fbshipit-source-id: 9f8082a1e20cd9ddf626cb176542e4e861a7e702
-
Yedidya Feldblum authored
Summary: [Folly] Use `MemoryIdler` in `SaturatingSemaphore`. As is used in `Baton`. And merge the two invocations of `futexWait` and `futexWaitUntil` - `futexWaitUntil` also tests for the max-deadline internally. Reviewed By: djwatson Differential Revision: D6720045 fbshipit-source-id: a48187a6c866dbf99bb5c7283e0288b939bef2e5
-
Yedidya Feldblum authored
Summary: [Folly] Handle max deadlines in `Futex`. Some of the synchronization code internally treats deadlines which are equivalent to `time_point::max()` for the same clock as a sentinel value indicating a deadline at infinity, or equivalently the lack of a deadline. Care must be taken when converting between clocks to translate a deadline at infinity for one clock to the deadline at infinity for the other clock. Reviewed By: nbronson Differential Revision: D6720021 fbshipit-source-id: cfc230dd2d8db55297385a4afcb6d87ae4221840
-
Lee Howes authored
Summary: Adds a TimedDrivableExecutor implementation of DrivableExecutor that adds a driveUntil method. driveUntil is as drive, except that it takes a timepoint and will stop driving after that time to allow callers to time out more easily. Reviewed By: yfeldblum Differential Revision: D6658320 fbshipit-source-id: a75145748e78497ce107ae152f25729547883835
-
Yedidya Feldblum authored
Summary: [Folly] Fix copyright line in `folly/synchronization/test/ParkingLotBenchmark.cpp`. Reviewed By: andrewjcg Differential Revision: D6758502 fbshipit-source-id: cae2a79940c7c9cc58c29977141199ab1e902081
-
Adam Simpkins authored
Summary: I believe the CMake build scripts have a similar level of functionality to the autoconf-based build scripts even on Linux these days. This lets users use CMake on Linux and Mac, rather than directing them to autoconf instead. Reviewed By: meyering Differential Revision: D6745366 fbshipit-source-id: 0361eecead55ee06269192eee8d2e7286eb182b8
-
Adam Simpkins authored
Summary: The compression test code has a large number of parameterized tests that run with a large number of parameter combinations. These tests take many minutes to run. Reviewed By: meyering Differential Revision: D6745364 fbshipit-source-id: dac5d5eb4a786da7be453742fac5f92a9740e468
-
Adam Simpkins authored
Summary: CMake 3.9+ includes built-in support for gtest. This updates the CMake build scripts to make use of this if the GoogleTest module is available. Reviewed By: meyering Differential Revision: D6745369 fbshipit-source-id: 1ef978874b9a0ef2cc5f48ab1c7a0b55d0f1155e
-
Adam Simpkins authored
Summary: The CMakeLists.txt file finds the sources and headers for the main folly library by finding all *.cpp and *.h files, and then excluding specific ones. The CMakeLists.txt file was originally written for Windows builds, and it was hard-coded to exclude a number of files that do not build on Windows. This updates the file to properly check for the dependencies, and build these files if their required third-party dependencies are available. Reviewed By: meyering Differential Revision: D6745368 fbshipit-source-id: 3ee04d54147a68c482aab50d30bc9fe2a4134eef
-
Adam Simpkins authored
Summary: Update the CMake build files to perform additional checks to set configuration macros in folly-config.h I believe this should largely bring the CMake build on-par with (or even better than) the autoconf build scripts. I believe that the CMake build scripts now perform all of the checks necessary to set macros in folly-config.h correctly. The autoconf-based configure script also appears to have a number of bugs: in several places it accidentally uses different macro names than the ones checked in the source code. Some of it's checks are also broken, and fail to detect features correctly due to compilation errors in the check. Reviewed By: yfeldblum Differential Revision: D6735699 fbshipit-source-id: 5ce48f1deddd63c9d52fcccd5d5ccf6ca35e9a0d
-
Adam Simpkins authored
Summary: Both the autoconf and cmake build scripts check for `cplus_demangle_v3_callback()` and define `FOLLY_HAVE_CPLUS_DEMANGLE_V3_CALLBACK` appropriately. Reviewed By: meyering Differential Revision: D6745365 fbshipit-source-id: 3020593c60a21568781b835490b8d64913366cb9
-
Wez Furlong authored
Summary: Following on from D6755842; we don't have to repeat as much of the internals of `readFixedString`, so... don't! Reviewed By: yfeldblum Differential Revision: D6756062 fbshipit-source-id: db3e4fd62e48bf155a656ee57df84274021027f7
-
Wez Furlong authored
Summary: D6635325 exposed a long standing issue with the way that we were consuming Cursor::length, so let's fix it up! More details are in the new unit test for this! Reviewed By: spalamarchuk Differential Revision: D6755842 fbshipit-source-id: f8b20406c32682892791e7375be577d54d52e0ad
-
- 18 Jan, 2018 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] Improve `SingletonThreadLocal` performance. By explicitly controlling inlining behavior. The ctor is definitionally cold - once per process - so outline. `get` is hot so inline. Uncached `get` is cold - once per thread - so outline uncached. Reviewed By: djwatson Differential Revision: D6736662 fbshipit-source-id: 4cd77c7772b46e2e3c6b2a3dc071b2b06522979e
-
- 17 Jan, 2018 11 commits
-
-
Adam Simpkins authored
Summary: - Fix the locations of some tests that have been moved. - Remove some tests that have been deleted. - Comment out some tests that depend on parts of folly that are not currently built by the CMake build scripts. - Fix a build error in CompressionTest.cpp if FOLLY_HAVE_LIBZ is not defined. Reviewed By: yfeldblum Differential Revision: D6735700 fbshipit-source-id: 89f60751fa7079b2c609d23d85fbed2a0f317b55
-
Adam Simpkins authored
Summary: DeterministicScheduleTest.cpp contained several single-line C++ comments that ended in a trailing backslash. This makes the preprocessor treat the following line as a comment as well, even if it does not start with `//`. Newer versions of gcc emit warnings about this. This changes the comment in DeterministicScheduleTest.cpp to use `/* */` to avoid this issue. Reviewed By: siyengar Differential Revision: D6735672 fbshipit-source-id: 162c735507a643ce0dbee58f1f054865237e1eba
-
Adam Simpkins authored
Summary: A couple of the test functions in AsyncSSLSocketTest maintained two EventBase objects and alternated looping between them. In some cases it would call EventBase::loopOnce() even when there was no work to do. This call normally blocks until an event is ready. This happened to work when using libevent1, but this appears mostly accidental: with libevent1 EVLOOP_ONCE causes the loop to break out even after an "internal" I/O event; in libevent2 EVLOOP_ONCE only breaks out after a non-internal event has occurred: https://github.com/libevent/libevent/commit/0617a818204397790e5e4c9bcb9e91ae5ea7817a In these tests it turns out that the internal EventBase NotificationQueue always gets triggered the very first time loopOnce() is called, preventing these tests from hanging when using libevent1. This fixes the hang when using libevent2 by removing the initial loopOnce() calls that potentially have nothing to do. This also consolidates the 2 EventBase objects into one to avoid having to alternate loopOnce() calls between them without knowing which one actually has work to do. This also fixes an issue where the code never checked the return value of `recv()` Reviewed By: yfeldblum, siyengar Differential Revision: D6735669 fbshipit-source-id: 5f36106a08866aa8908e82263f83a606399cdf79
-
Adam Simpkins authored
Summary: Update ShellTest and PromiseTest to suppress warnings about using deprecated functions in the tests for those functions. Reviewed By: yfeldblum Differential Revision: D6735670 fbshipit-source-id: 89edcb49d1eff3132398aaef88f5a5cae82e3557
-
Stepan Palamarchuk authored
Summary: Appending/prepending to IOBuf while iterating over it with Cursor is unsafe. This diff adds DCHECKs to catch such cases. Reviewed By: yfeldblum Differential Revision: D6735060 fbshipit-source-id: 7799facc52c53fabd83756ecb26a18c4ebd69677
-
Dave Watson authored
Summary: Only do the exponential loop smoothing once every 10ms. If we need it before then, do it linearly. Also, remove one of the now()s by only calling it once. Reviewed By: bmaurer, yfeldblum Differential Revision: D6690047 fbshipit-source-id: 8267c01064aabc17cb8e86eb888e6120c99a129f
-
Stepan Palamarchuk authored
Summary: Currently appending to the tail of the chain would cause the cursor advancing to the beginning of the chain, which is not correct, instead we should advance to the tail. Reviewed By: yfeldblum Differential Revision: D6734999 fbshipit-source-id: b8b2585e0475b656f7b6bf4ed39686e2ccb2e432
-
Petr Lapukhov authored
Summary: Add non-throwing version of createNetwork(), and rework existing code to throw exceptions based on error codes returned by non-throwing version. Reviewed By: yfeldblum Differential Revision: D6705425 fbshipit-source-id: 268ff64c36e7cceeea3463248d18b7b2cb81390e
-
Yedidya Feldblum authored
Summary: [Folly] Fix Build: `folly/synchronization/test/ParkingLotBenchmark.cpp` (`sign-compare`, `unused-variable`). Reviewed By: djwatson Differential Revision: D6733586 fbshipit-source-id: 04b82110e8e0b655e6b3994dbca3bd0b4bd57eef
-
Adam Simpkins authored
Summary: The cmake files refer to this package as "FindGLog", but the file name on disk incorrectly had the 'L' lower cased. This worked on case-insensitive file systems, but caused cmake to fail when used on a case-sensitive file system. This diff fixes the file name to match the name used in the cmake files. This is also more consistent with the existing "FindGFlags" and "FindGMock" packages. Reviewed By: yfeldblum Differential Revision: D6710439 fbshipit-source-id: 19f6824ef6793e505b5a0080c0fefe0b145a41c3
-
Yedidya Feldblum authored
Summary: This reverts commit 9979f39677284b1051cb109b461097495d77ca17 bypass-lint An infra SEV is better than not reverting this diff. If you copy this password, see you in SEV Review! cause_a_sev_many_files Differential Revision: D6725091 fbshipit-source-id: f1e3c80c869aa47684f5fbe79528e68174dee568
-
- 16 Jan, 2018 5 commits
-
-
Dave Watson authored
Summary: Add benchmark vs. futex Reviewed By: yfeldblum Differential Revision: D6639280 fbshipit-source-id: 9735444a7f48011f31603159561675d472cc4411
-
Jim Meyering authored
Summary: Finding ourselves writing too many identical "if (expr) SKIP << ..." statements, this change factors out/encapsulates the functionality. Reviewed By: yfeldblum Differential Revision: D6727531 fbshipit-source-id: 703abcd5d8c30a6ebab94327a12da4f2d1f7ff74
-
Yedidya Feldblum authored
Summary: [Folly] Use thread-local in `RequestContext::getStaticContext`. `folly::SingletonThreadLocal` uses `folly::ThreadLocal`. However, `static FOLLY_TLS` (`static __thread`) is always faster than `folly::ThreadLocal` for thread-local singletons for which iteration is not required. Reviewed By: djwatson Differential Revision: D6725091 fbshipit-source-id: 9979f39677284b1051cb109b461097495d77ca17
-
Yedidya Feldblum authored
Summary: [Folly] Fix missing `WaitOptions` symbol in autotools build. Closes #736. Reviewed By: spalamarchuk Differential Revision: D6724950 fbshipit-source-id: 54ac0d1a743aa38fe1a7a2bdce585fced18c5a44
-
Stepan Palamarchuk authored
Summary: Start tracking the position of the cursor from the head of IOBuf chain. This comes at almost no cost (one arithmetic operation on IOBuf advance). The main use case for this cursor is Thrift deserialization code. It allows us to stop accumulating `xfer` on every single byte/field/element write and instead get it from Cursor in the end (when we're exiting Thrift code). This allows achieving ~10% better performance of deserialization. Reviewed By: yfeldblum Differential Revision: D6646813 fbshipit-source-id: 8f796854a24a411698e96afe037695e816813022
-