- 10 Dec, 2018 6 commits
-
-
Doron Roberts-Kedes authored
Summary: There was a problem with DeterministicSchedule when threads issued shared access stores/loads to atomics during thread local destructors. Thread local destructors run after a thread terminates, and therefore after all of the DSched cleanup work in beforeThreadExit() is already complete. The new DSched::joinAll() functions works around this problem by blocking the parent until all child threads are blocked at the end of beforeThreadExit(). The parent then lets each child thread proceed one at a time through the thread local destructor with a paired sem_post and .join(). Reviewed By: djwatson Differential Revision: D13381250 fbshipit-source-id: 80ab39b3f2f71ee69dfbaec9950dfc5908874353
-
Doron Roberts-Kedes authored
Summary: There are too many corner cases at the moment to redefine DeterministicAtomic as using BufferedAtomic, so add a 2nd one to allow test to transition over to BufferedAtomic on a case by case basis. Reviewed By: djwatson Differential Revision: D13379877 fbshipit-source-id: 76efdd4faedd6c5af13ab8507f41fb63b3e1c7f3
-
Andrii Grynenko authored
Summary: Pick some events from the NotificationQueue on every EventBase loop iteration if NotificationQueue is registered as an internal event and there are no other active events. Reviewed By: yfeldblum Differential Revision: D13393839 fbshipit-source-id: 9d281ac721db268f321860b1bf55d2afd79f9679
-
Lee Howes authored
Summary: Explicitly delete the value taking form of folly::Future::then. Redo of D13115198 Reviewed By: yfeldblum Differential Revision: D13396333 fbshipit-source-id: 36df474cab95577b68584099109d94069903090e
-
Yuntong Wang authored
Differential Revision: D13115198 Original commit changeset: a33246d23ccd fbshipit-source-id: 3bbd102ce166f5404f7181a1ca1c88c66d6b8ea6
-
Lee Howes authored
Summary: Explicitly delete the value taking form of folly::Future::then. Reviewed By: Orvid Differential Revision: D13115198 fbshipit-source-id: a33246d23ccde8a14d4d70de4f6e0373c006de11
-
- 08 Dec, 2018 2 commits
-
-
Krishna Kondaka authored
Summary: Original change to folly::json as part of D13038266/ was reverted due to performance regression in Android. This is modified version to keep track of lineNum while skipping white spaces. Reviewed By: yfeldblum Differential Revision: D13293197 fbshipit-source-id: 96d07946ae7430a182ff98f6dfd6d32e3a923991
-
Dan Melnic authored
Summary: Add support for EventBase::runInEventBaseThreadAlwaysEnqueue Reviewed By: yfeldblum Differential Revision: D13366773 fbshipit-source-id: 72eacdbe699509d771fcefe31ee4d742eaadd4d1
-
- 07 Dec, 2018 7 commits
-
-
Petr Lapukhov authored
Summary: Mutate supplied object in place in accordance with patch instructions. If patch fails, object may be left in partially modified state. Notice that patch application is placed in json_patch as we rely on dynamic object to store the patch itself. Reviewed By: yfeldblum Differential Revision: D10427475 fbshipit-source-id: 9ebc927c31fdf7434e69cb5c8df01c6979cab6e0
-
Petr Lapukhov authored
Summary: Previously `get_ptr(json_pointer const&)` would return nullptr or throw. The new try_get_ptr version provides richer facilities: points which token caused resolution error, if any, and also provides pointer to last-known properly resolved element. This allows, for example, implementing append logic with pointers like "/foo/bar/-" if "bar" is an array. The error would return `dynamic*` for the array, allowing caller to immediately perform push operation. Consequently, the get_ptr() is now implemented in terms of `try_get_ptr`. Reviewed By: yfeldblum Differential Revision: D10098092 fbshipit-source-id: 620996a66823be661d64d39661837cedf3c24493
-
Petr Lapukhov authored
Summary: We have insert() API for underlying object, but not the array. With array, insert() has same semantic as in std::vector, shifting elements to the right. To insert at arbitrary offset use something like `arr.insert(arr.begin() + 10, elem)`; This calls one of specializations of std::vector's insert() underneath. Reviewed By: yfeldblum Differential Revision: D10372068 fbshipit-source-id: 54bb7ea80b36bf1b893d88b82a11afa08ad0c0e2
-
Yedidya Feldblum authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/981 Reviewed By: Orvid Differential Revision: D13374621 Pulled By: yfeldblum fbshipit-source-id: 00665529250cd03d9ca02f72f36efe505c280aa3
-
Alexander Zhavnerchik authored
Summary: This serves two purposes: * unify API to be similar to folly::Optional * allow to pass snapshot into the getter, so snapshoted value can be fetched for that setting. Reviewed By: alikhtarov Differential Revision: D13116589 fbshipit-source-id: e46ac1a733d0d947f2a63f25e90deba31c03223b
-
Yedidya Feldblum authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/979 Reviewed By: Orvid Differential Revision: D13368681 Pulled By: yfeldblum fbshipit-source-id: 56c18633ddd029ee499940ce5c8b8ad2cbef4ea7
-
Leo Andrade authored
Summary: Fixing minor typo in comment for initlist_construct_t. Reviewed By: yfeldblum Differential Revision: D13356226 fbshipit-source-id: b888c736877c57fa196bf98af87ec0473f6895f5
-
- 06 Dec, 2018 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Let `SingletonThreadLocal::accessAllThreads` give the right type. Reviewed By: andriigrynenko Differential Revision: D10474930 fbshipit-source-id: 3fbe2e8ef6ace7d40d774f66b830ae40d810ef9d
-
Andrii Grynenko authored
Summary: RequestContext::setContext is only meant to be used internally. Reviewed By: yfeldblum Differential Revision: D13352499 fbshipit-source-id: 6837186a5eaf0e9ad53cead73c5957a17bbb82bd
-
Dan Melnic authored
Summary: Avoid UB by using an std::atomic<FatalSignalCallbackRegistry*> Reviewed By: yfeldblum Differential Revision: D13359882 fbshipit-source-id: 02f5f758bd0ba0c6201a384b993dafcfa7ab4546
-
Dan Melnic authored
Summary: Fix gFatalSignalCallbackRegistry SIOF issue Reviewed By: yfeldblum Differential Revision: D13317694 fbshipit-source-id: a828901dd42841b83a464ae759b7461b7d8fdca1
-
- 05 Dec, 2018 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Allow `StringPiece` construction from `string` with custom allocator. Reviewed By: nbronson Differential Revision: D9494207 fbshipit-source-id: 22b6beb7e5718f69aa283431ad49dd36295e0825
-
Yedidya Feldblum authored
Summary: [Folly] Let `SingletonHolder` impl be class member type v.s. function local type, which for arbitrary magical reasons improves rtti/debuginfo letting the debugger see the type exactly. Could also be done by extracting `SingletonHolderImpl` as a top-level type, but that would require an additional `friend` declaration and class member type works. Reviewed By: pixelb Differential Revision: D13333184 fbshipit-source-id: 7de4f8c16706acb18c6869b5dcd0b9c6952efc46
-
Yedidya Feldblum authored
Summary: [Folly] Fix ordering between `FOLLY_HAS_EXCEPTIONS` and `kHasExceptions` definitions. Reviewed By: swolchok Differential Revision: D13338301 fbshipit-source-id: 855dbf7ba42eb118f84ffb84d2520c7dfc49cf39
-
Phil Willoughby authored
Summary: Prints StringPiece/FixedString/fbstring like a string and not like a vector of char when implicitly printed by googletest/googlemock. The order of printing precedence within googletest is: * ADL `PrintTo(T const&, ostream*)` * Gtest's container-printer for anything that looks like a container * ADL `ostream& operator<<(ostream&, T const&)` Unfortunately you need to include the <folly/test/TestUtils.h> header in every test to have this functionality. The googletest mechanism for overloading this means we can't do it in the main headers without introducing a dependency from them to googletest. Reviewed By: yfeldblum, luciang Differential Revision: D13306040 fbshipit-source-id: 4e8252d377835dad04625d84a0cae7c0713ce8af
-
- 04 Dec, 2018 5 commits
-
-
Dan Melnic authored
Summary: Fix broken opt build due to unused var warning Reviewed By: yfeldblum Differential Revision: D13317777 fbshipit-source-id: 9e4928558e0514bdb5ab21e78b026c5c1a44a380
-
Nathan Bronson authored
Summary: F14FastMap heuristically selects either F14ValueMap or F14VectorMap at compile time (same for F14FastSet). F14VectorMap has stronger iteration guarantees than the other unordered associative containers, including providing a reverse iterator. This diff refactors F14FastMap so that even when it uses the same policy as F14VectorMap it doesn't expose these additional guarantees. This is a precursor to extending FOLLY_F14_PERTURB_INSERTION_ORDER to all F14FastMap and F14FastSet. Reviewed By: yfeldblum Differential Revision: D13303823 fbshipit-source-id: 5feea3d1f8cb809ceb2c4f79a7cc1bc7e447768f
-
Andrii Grynenko authored
Summary: If observer generator function returned the same shared_ptr it's safe to not propagate such an update. Reviewed By: yfeldblum Differential Revision: D13249675 fbshipit-source-id: 334c33e791b664eaec3c2698009f138bef04f8a6
-
Greg McGary authored
Summary: Support disabling x86 static tracepoints. Reviewed By: yfeldblum Differential Revision: D13293303 fbshipit-source-id: e8578ee1d855aaf33eeacbc1e804608ab65449d5
-
Rachana Nandan authored
Summary: add an api in AsyncUDPServerSocket, to enable Address reuse Reviewed By: udippant Differential Revision: D13306371 fbshipit-source-id: ac19a89af5694b181fcd7639a5d566684c2adc92
-
- 03 Dec, 2018 5 commits
-
-
Krishna Kondaka authored
Differential Revision: D13038266 Original commit changeset: b424690c50f0 fbshipit-source-id: 600452535acf1251ed5d35845244ebdfcc63b11f
-
Nathan Bronson authored
Summary: This diff restores FOLLY_F14_PERTURB_INSERTION_ORDER to its default value of folly::kIsDebug. Reviewed By: shixiao Differential Revision: D13292523 fbshipit-source-id: 2304014131ea2996fa917d899dc169fe25f8ec8c
-
Scott Wolchok authored
Summary: Straightforward support for -fno-exceptions. Reviewed By: yfeldblum Differential Revision: D13289825 fbshipit-source-id: 4de867a77c758ce8a388fc8e0c85c296e86f3251
-
Yedidya Feldblum authored
Summary: [Folly] Remove unnecessary verbosity in `DefaultMake`. The shorter version does just as well. Reviewed By: andriigrynenko Differential Revision: D13254005 fbshipit-source-id: 6520b813685a4621d8679b7feda24a1a0b75cfd5
-
Nathan Bronson authored
Summary: This diff splits the gmock helpers out of JsonTestUtil.h into JsonMockUtil.h so that JsonTestUtil.h doesn't introduce a dependency on gmock that is problematic for some platforms. (Note: this ignores all push blocking failures!) Differential Revision: D13293728 fbshipit-source-id: 2a0e7f4a7c96fc05495b56fb02e848e92edc90d8
-
- 01 Dec, 2018 4 commits
-
-
Nathan Bronson authored
Summary: This diff defaults FOLLY_F14_PERTURB_INSERTION_ORDER to off even for debug builds. It will be reenabled soon. Reviewed By: markw65 Differential Revision: D13289756 fbshipit-source-id: 931f373e5633fa641360da7af51b5d6e64a5b39b
-
Andrew Gallagher authored
Reviewed By: yfeldblum Differential Revision: D13279970 fbshipit-source-id: 78b325029878c1ff5fb2e1c59d5765121818b55b
-
Yedidya Feldblum authored
Summary: [Folly] Enforce `SingletonThreadLocal` uniqueness per type and tag. Forbid duplicate uses with differing make/tltag. Reviewed By: andriigrynenko Differential Revision: D13213730 fbshipit-source-id: f051ac10667ee394545b56816646a721a68e33e5
-
Yedidya Feldblum authored
Summary: [folly] Support `-fno-exceptions` in `folly/dynamic.h` and in its dependencies. Reviewed By: Orvid Differential Revision: D13018170 fbshipit-source-id: 4d16049821f3a8628d63ee20f412c4df3dcee37e
-
- 30 Nov, 2018 3 commits
-
-
Subodh Iyengar authored
Summary: A default value of true for SO_REUSEADDR is dangerous. SO_REUSEADDR has several issues. For example if SO_REUSEADDR is used to bind to a socket which is already bound but not connected, the kernel will allow this operation to complete. This can cause overlapping data. https://www.spinics.net/lists/netdev/msg206437.html Looking at use cases of AsyncUDPSocket it does not look like people depend on this behavior of AsyncUDPSocket and this was first introduced in thrift for no reason. This changes the behavior back to false. Reviewed By: yfeldblum, djwatson Differential Revision: D13274704 fbshipit-source-id: 391cf1bdd3f633bee38c230fcd9f1403ea950c3b
-
Nathan Bronson authored
Summary: It's easy to accidentally rely on the relationship between insert and iteration order in unordered containers. This diff adds some randomization to the insertion order within an F14 chunk when compiled in debug mode. This isn't full randomization of the order, but is enough to break tests that rely on the iteration order of F14 maps and sets as small as two elements. This diff applies randomization to folly::dynamic object, F14NodeSet, F14NodeMap, F14ValueSet, F14ValueMap, F14FastSet for small (< 24 bytes) value_type, and F14FastSet for small value_type. The long-term plan is to randomize insertion order for all F14FastSet and F14FastMap, leaving iteration order deterministic only for explicit uses of F14VectorSet and F14VectorMap. Reviewed By: yfeldblum Differential Revision: D13099681 fbshipit-source-id: 35b3174a8afbc6cef27d2080adc5a01e85154dcd
-
Doron Roberts-Kedes authored
Summary: Mimic the atomic history buffers in relacy. This diff allows older values for atomics to be returned as long as the memory model is respected. Enforce the memory model with vector clocks (ThreadTimestamps). Depends on D10418223 Reviewed By: djwatson Differential Revision: D10418450 fbshipit-source-id: 0556259e96d512030ff9924bbd5aa0f79a38dfff
-