- 02 Jul, 2017 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Disambiguate the various `in_place` overloads, following C++17. Forwarding `folly::in_place` is ambiguous because there are multiple overloads and we depend on deduction to choose the correct overload. For example: ```lang=c++ enum struct Err {}; Expected<Expected<int, Err>, Err> val(in_place, in_place, 3); // fails to compile ``` So we must disambiguate the three overloads: the default, the typed, and the indexed. C++17 defines `std::in_place`, `std::in_place_type<typename>`, and `std::in_place_index<std::size_t>`. Let us mimic that exactly, so that it becomes trivial to swap out our implementations for the standard implementations once we jump to C++17. Reviewed By: Orvid Differential Revision: D5362339 fbshipit-source-id: d4012b01796390e74d8c14cdf68af70102608039
-
Christopher Dykes authored
Summary: There is no way to lock a socket on Windows, so these calls will always fail. Just don't do the lock on Windows. To do it properly with sockets, this should probably be forwarding to `sendmsg`/`recvmsg`, but this is good enough for now. Reviewed By: simpkins Differential Revision: D5307901 fbshipit-source-id: 9855274e932a3e2ec3cacae10363200187e0c01b
-
- 01 Jul, 2017 2 commits
-
-
Christopher Dykes authored
Summary: This also silences a few warnings in the stl vector tests. Reviewed By: yfeldblum Differential Revision: D5350383 fbshipit-source-id: 84df2a7dbfbb23ebb3f15a09f0cb58080b3e06d6
-
Nate Stedman authored
Summary: Xcode 9 is throwing errors because `-Wshadow-local` and `-Wshadow-compatible-local` are undefined in Clang. Reviewed By: Orvid Differential Revision: D5356476 fbshipit-source-id: 4cc9f48f796f66decb4beaa66d3e66f486449c19
-
- 30 Jun, 2017 8 commits
-
-
Christopher Dykes authored
Summary: Folly no longer supports GCC 4.8, so this is no longer needed. Reviewed By: yfeldblum Differential Revision: D5354542 fbshipit-source-id: bd9a2732f22f2176f64f92f0af6f7d59dd59a8d9
-
Christopher Dykes authored
Summary: This is so we can do some magic internally. Reviewed By: yfeldblum Differential Revision: D5354341 fbshipit-source-id: 96abf92f4765f5ae21aa3c0dc4bcadcc22560ab5
-
Adam Simpkins authored
Summary: This was breaking Windows builds. Reviewed By: Orvid Differential Revision: D5351468 fbshipit-source-id: 3385931b82b11d71d98861fb45efc71a632d470b
-
Christopher Dykes authored
Summary: Because `#warn` isn't actually a thing. Reviewed By: ot Differential Revision: D5356878 fbshipit-source-id: 57751ca57e7f6aaf9f4d8be70958b9cacc4f7335
-
Christopher Dykes authored
Summary: The empty file was left to stop the bleeding without breaking things. Time to remove it. Reviewed By: mzlee Differential Revision: D5354310 fbshipit-source-id: cd3039811cf9d7371578e4078cd7d32e3bc6d8a1
-
Maged Michael authored
Summary: reserved Reviewed By: djwatson Differential Revision: D5352232 fbshipit-source-id: e3c27e22320e12bd635acb8a1b394a9de02cecfc
-
Maged Michael authored
Summary: - Fixed leak in hazptr_priv destruction - Updated tests to detect leak Reviewed By: djwatson Differential Revision: D5351280 fbshipit-source-id: 724810cbbe0565f0cbd41f9d2121abefd98487bd
-
Christopher Dykes authored
Summary: It doesn't need to exist anymore Reviewed By: yfeldblum Differential Revision: D5318746 fbshipit-source-id: c70b184f4b3fc12ede4632d6b3d43de16ed758c7
-
- 29 Jun, 2017 4 commits
-
-
Adam Simpkins authored
Summary: Versions of gcc prior to 5.x only support C++11 constexpr functions, and require that they consist of only a single return statement. This updates isLogLevelFatal() to meet those requirements so that it can still be compiled with gcc 4.9. Reviewed By: ikobzar Differential Revision: D5350304 fbshipit-source-id: 2a9c256236c484f8c3d5f83690fde8b7333aa4fc
-
Ankit Shah authored
Summary: Using RSA free and removing unnecessary Bignum allocations to prevent test failures due to memory leaks Reviewed By: anirudhvr Differential Revision: D5348232 fbshipit-source-id: 7c76f3dced26a3080fc82b4bacc06bc0768d6fda
-
Maged Michael authored
Summary: - Add support for private lists of retired objects - Add an option for one domain - More scalable thread cache managemnt - hazptr_rec alignment - FOLLY_ALWAYS_INLINE - Refactor management of retired objects in hazptr_domain - Refactor benchmarks Reviewed By: davidtgoldblatt Differential Revision: D5322646 fbshipit-source-id: 9d31582b9a8216861e7e78e2e1cd08dc11cf7f88
-
Andrew Krieger authored
Summary: So we can use writeFile in projects which compile with -fno-rtti Reviewed By: mzlee Differential Revision: D5341469 fbshipit-source-id: bb77baf9576604ff862d54d59bf382862bd0dd58
-
- 28 Jun, 2017 4 commits
-
-
Andrew Krieger authored
Summary: writeFileAtomic variants all have a mode, lets just hoist the mode parameter up and use what was hardcoded as the default. Reviewed By: Orvid Differential Revision: D5341481 fbshipit-source-id: 6976915dd73d2382b42bd991782730601b918978
-
Giuseppe Ottaviano authored
Summary: There's no reason these utilities should only be used by folly. Reviewed By: mzlee Differential Revision: D5317894 fbshipit-source-id: 5a9bdf4c5efaa5bcbe78e6723a03a468f2fe5e32
-
Ankit Shah authored
Summary: Added getter and setter methods for the RSA struct in OpenSSL. This is needed for compatibility between OpenSSl 1.1.0 and other versions. Reviewed By: yfeldblum Differential Revision: D5331948 fbshipit-source-id: ab52ffd38bb5e0bd59e058bcbc6ec6122839844e
-
Christopher Dykes authored
Summary: GCC 7 has issues with `this->` in trailing return type declarations. This takes the approach of eliminating the trailing return types entirely. Closes https://github.com/facebook/folly/pull/621 Reviewed By: yfeldblum Differential Revision: D5324763 fbshipit-source-id: e38ae76c13ff60bc227146c1ec25afbac8b6982f
-
- 27 Jun, 2017 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Fixes for `Try::withException`. * Fix the overload with the exception type specified so that the specified exception type is checked. A mismatch between the specified exception type and the parameter type of the passed invokable will result in the expected compiler error. * Add an overload where the exception type is deduced intentionally, as opposed to accidentally. Of course, these simply forward to their corresponding `exception_wrapper::withException` overloads. Reviewed By: ericniebler Differential Revision: D5216691 fbshipit-source-id: 7e85c906c3aa17dfede6e0980c6ac8bf75034073
-
Dave Watson authored
Summary: As title. Reviewed By: WillerZ, yfeldblum, ivmaykov Differential Revision: D5312308 fbshipit-source-id: 91ad4bb39df0619f2885e13c1fda1e018292a40e
-
Adam Simpkins authored
Summary: Add attachEventBase() and detachEventBase() methods to AsyncSignalHandler, similar to the methods of AsyncSocket. The main benefit of this is that it allows creating an AsyncSignalHandler with an initially null EventBase, and then attaching it to an EventBase at some later point in time. Reviewed By: yfeldblum Differential Revision: D5315325 fbshipit-source-id: 8a4ca483a62ca86837ea0bb54fa9a70d59f2f04e
-
Adam Simpkins authored
Summary: Clang's UndefinedBehaviorSanitizer flagged an issue that pushAtMost() could call `memcpy(dest, nullptr, 0)` if the input was an empty `ByteRange`. A default constructed `ByteRange` (or `StringPiece`) will be empty and both its begin and end pointers will be null. Unfortunately it is undefined behavior to call `memcpy()` with a null source pointer even if the length is 0. This updates the `Cursor` and `Appender` code to avoid calling `memcpy()` at all when the input length is 0. Reviewed By: yfeldblum Differential Revision: D5322917 fbshipit-source-id: 67fce9579f97e7e93a5767b11cc5e43ff7be5876
-
- 26 Jun, 2017 8 commits
-
-
Giuseppe Ottaviano authored
Summary: `FormatValue` holds non-integral objects by reference, which can cause subtle problems if a formatter is constructed with temporary arguments and used beyond the expression that constructs it. With this diff the arguments are perfectly forwarded into a tuple, so the formatter will take ownership of the temporaries while holding references to lvalues as before. The only downside is that now `FormatValue` objects are constructed every time the formatter is used, rather than only at formatter construction. This should not be noticeable as those objects' constructors should just take a reference to the argument. Note that the format string is still held by reference, but this is fine because it should almost always be a string literal. Reviewed By: ericniebler Differential Revision: D5317382 fbshipit-source-id: ef8355194b634d3751ef1ccca32dd1db29e27c48
-
Christopher Dykes authored
Summary: Previously, only marking it as non-blocking was supported. Reviewed By: simpkins Differential Revision: D5307769 fbshipit-source-id: 03ed7c35632dbc9551552b21c401ea709bd6eaaa
-
Marie Bremner authored
Summary: Edited the example function for withWLock Reviewed By: simpkins Differential Revision: D5322000 fbshipit-source-id: 6d95b173087dec33cfdc0d0cee9c605cdf4e2593
-
Yedidya Feldblum authored
Summary: [Folly] Let `make_exception_wrapper` construct on-heap objects in-place. Currently, it constructs on-heap objects on the stack and then move-constructs them into on-heap storage. Reviewed By: ericniebler Differential Revision: D5315104 fbshipit-source-id: cc0493e7d98aacadd342eb56601028ced4a19bb3
-
Bi Xue authored
Fix SharedPromise::isFulfilled doesn't get back correct value when it's running in a different thread of SharedPromise::setValue Summary: The implementation of `SharedPromise::isFulfilled` return `hasValue_` directly without taking a lock. `isFulfilled` can be accessed concurrently, but `hasValue_` is not synchronized. Adding a lock fix the issue. Reviewed By: yfeldblum Differential Revision: D5319030 fbshipit-source-id: a94b12ed277aa64254680ae84cb18946226cceea
-
Christopher Dykes authored
Summary: There was a circular dependency between the `detail/ThreadLocalDetail.(cpp|h)` files and `ThreadLocal.(cpp|h)`, this resolves that circular dependency by moving a couple of declarations into the detail file. Reviewed By: yfeldblum Differential Revision: D5318875 fbshipit-source-id: 61de7c4b3ffa30f9eb11bd97e0493e9de12c5804
-
Christopher Dykes authored
Summary: This reverts commit f16634ce92ee6c299613d3db22f0537bd31ac14d Differential Revision: D5312574 fbshipit-source-id: 1557ac17f79fb8e3530a09d69fa978ddd38e5093
-
Phil Willoughby authored
Summary: `toDelim` with a single parameter of the same type as the target type was previously copy-constructing its result. It will now construct it with perfect forwarding which is more efficient if the input is a temporary. This brings `toDelim` into line with the similar implementations of `to` and `tryTo` Reviewed By: yfeldblum Differential Revision: D5301427 fbshipit-source-id: 843a2d93384de88cce42f26da6562a1a6ed0dc9c
-
- 25 Jun, 2017 3 commits
-
-
Christopher Dykes authored
Summary: In the parameter declarations for the `gettimeofday` portability header implementation. More details on exactly why can be found in the newly added comment on the function. Reviewed By: yfeldblum Differential Revision: D5281301 fbshipit-source-id: 1b246adc7743b5470201e452c008418429f7f142
-
Christopher Dykes authored
Summary: It's an example, not part of the main Folly library. Reviewed By: yfeldblum Differential Revision: D5304985 fbshipit-source-id: 7cfb95da5795af61e9307882f71836ef7fa5a463
-
Christopher Dykes authored
Summary: They are intended to be run as separate sets of tests, and the logging tests define multiple mains. Reviewed By: yfeldblum Differential Revision: D5307503 fbshipit-source-id: ed38a762177cec3c600791b861584dd47019b5a9
-
- 24 Jun, 2017 1 commit
-
-
Michael Lee authored
Summary: Resolve two issues with folly's clock_gettime() shim on Apple platforms (iOS, macOS, etc.): When detecting whether folly should define clock_gettime() on Apple platforms, don't assume clock_gettime() is declared in Apple's headers just because MAC_OS_X_VERSION_10_12/__IPHONE_10_0 is defined. Someone might use a newer macOS or iOS SDK (which defines MAC_OS_X_VERSION_10_12/__IPHONE_10_0), but not have clock_gettime() (because _DARWIN_FEATURE_CLOCK_GETTIME isn't set). When defining a shim for clock_gettime(), don't rely on Apple's clock_gettime() declaration. Instead, shadow Apple's declaration with our own. This prevents folly from inheriting Apple's availability and visibility attributes for clock_gettime(). Reviewed By: yfeldblum Differential Revision: D5312574 fbshipit-source-id: f16634ce92ee6c299613d3db22f0537bd31ac14d
-
- 23 Jun, 2017 4 commits
-
-
Kyle Nekritz authored
Summary: So that it is available on other transports. Reviewed By: Orvid Differential Revision: D5302039 fbshipit-source-id: cbfdadd158061ed9a2b3ed3e0960ce66f0d545fd
-
Ilya Maykov authored
Summary: Fix UBSAN failure in atomic_shared_ptr_test by using reinterpret_cast instead of static_cast. Reviewed By: yfeldblum Differential Revision: D5314116 fbshipit-source-id: 8479c9c4bdeeb155067a3de75efe4e97c36519e5
-
Giuseppe Ottaviano authored
Summary: Same as `boost::noncopyable` but it does not disable move constructor/assignment. Reviewed By: luciang Differential Revision: D5311043 fbshipit-source-id: 44fe95712169b95a00e474385be43fa857cfd8ec
-
Christopher Dykes authored
Summary: `long` is only 32-bits on Windows, which means this call to `std::min` was ambiguous, which caused a compile error. Reviewed By: simpkins Differential Revision: D5305964 fbshipit-source-id: 7e4152006e163a0301652be46318f0fc937e5ead
-