- 14 May, 2019 2 commits
-
-
Matthieu Martin authored
Summary: See the test for a concrete example. We have a scenario where both a library, and a service using that library, are using fiber. Managing a separate similar-sized thread and event-base pool costs us complexity and performance. So this seems like a legit need. The overall solution is to hash the Options struct. But because that has some cost, I made it optional, by introducing a new FrozenOptions struct. Reviewed By: andriigrynenko Differential Revision: D15305274 fbshipit-source-id: 5c53d8c4ed321ae88089c64de41af8229f877d36
-
Lewis Baker authored
Summary: This modifies the Baton data-structure to store a linked list of awaiters rather than storing a single awaiter. When a coroutine awaits the Baton it now does a lock-free push onto a list of awaiters. When the Baton is posted it atomically dequeues all awaiters from the list and then resumes each of them in turn. Reviewed By: andriigrynenko Differential Revision: D15310137 fbshipit-source-id: 895ebcf2b113fb270ad7abfedbaab68ea51de84c
-
- 13 May, 2019 3 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Switch from `NDEBUG` to `kIsDebug` in `MPMCQueue`, preferring C++ over the preprocessor. Reviewed By: Orvid Differential Revision: D15303518 fbshipit-source-id: d014cea3035527bd27854f58b1a74a48740efd20
-
Mike Starr authored
Summary: If the value for backoff_max is less than backoff_min, we will see inconsistent behavior where the backoff_min sleep duration is used for the first 57 attempts, then backoff_max will be used. In our case, we hit an issue where 0 was passed for backoff_max. We would see backoff_min sleep times for the first 57 attempts, then immediately drop to 0 sleep time which led to no retry wait at all. If backoff_max < backoff_min, there's no way to respect both, but this makes the behavior consistent across all tries. Reviewed By: yfeldblum Differential Revision: D15282681 fbshipit-source-id: d9dd7b2498d77e4a01c9454a639b612ed9e26519
-
Luca Niccolini authored
Differential Revision: D15177816 Original commit changeset: 7298fcdc3a73 fbshipit-source-id: fc62ec2ecf7fb06bc60cdd0c33b17b53fe35af19
-
- 12 May, 2019 1 commit
-
-
Subodh Iyengar authored
Summary: HHWheelTimer is a member of EventBase, and EventBase is passed to it in the ctor. However during the destruction of the evb, wheel timer gets destroyed after the evb is destroyed and still retains a reference to the evb. This is not so good. This diff fixes it by canceling the timer before the evb gets destroyed. Reviewed By: lnicco Differential Revision: D15177816 fbshipit-source-id: 7298fcdc3a73041484a315c420bcb866175c19cc
-
- 10 May, 2019 17 commits
-
-
Udip Pant authored
Summary: This diff updates docker os_image to ubuntu18 and gcc7 in travis settings. The dependencies that we work with internally (e.g. gcc7, boost and so on) are not present in the ubuntu-16.04. Further, the support for gcc5 is going away. So maintaining this compatibility for these platforms is painful, especially for new projects, such as mvfst. Reviewed By: simpkins Differential Revision: D15286181 fbshipit-source-id: eb0da9556cdb17d0aa132ac2aa4c35f9c6eccd97
-
Yedidya Feldblum authored
Summary: [Folly] `XLOG_EVERY_N`, `XLOG_EVERY_N_EXACT`. Renaming `XLOG_EVERY_N` to `XLOG_EVERY_N_EXACT` and adding a new `XLOG_EVERY_N` which performs better under contention, at the cost of possibly missing increments and therefore over-logging. Reviewed By: simpkins Differential Revision: D15230953 fbshipit-source-id: cf7b86b96340f78156f7cd25f7e784b0f1b8d5fa
-
Yedidya Feldblum authored
Summary: [Folly] Let CPUThreadPoolExecutor use unbounded queues when no queue bounds are specified. One constructor remains which specifies queue bounds; that constructor uses bounded queues. Reviewed By: andriigrynenko Differential Revision: D15113118 fbshipit-source-id: 9c8ace4f170fdfdeef152e55b371d434ad248866
-
Amol Bhave authored
Summary: xplat folly sync got blocked due to an error with missing ::remainderl function. Not really sure why this function is missing, for now ignore it. Reviewed By: Orvid Differential Revision: D15298056 fbshipit-source-id: 34035da5de826b55e28c79b8540aacd827e1ffdf
-
Joe Loser authored
Summary: - On GCC 4.9 and below, the type of `vec` could not be deduced in the `for_each` call. - Since folly requires GCC 5.1 or later now, which has no issues in the deduction, remove the workaround and associated comment. Pull Request resolved: https://github.com/facebook/folly/pull/1126 Reviewed By: Orvid Differential Revision: D15292875 Pulled By: yfeldblum fbshipit-source-id: 50533536e9e73d2c3e5d466d1b6143d0d4085648
-
John Strizich authored
Summary: We need this for dependencies that require submodules Reviewed By: saifhhasan, GirasoleY Differential Revision: D15282792 fbshipit-source-id: b0cc8d645e73668252409934fd6741fb211e30ae
-
Zeyi (Rice) Fan authored
Summary: On Windows, the writing operation would fail with: ``` Traceback (most recent call last): File ".\opensource\fbcode_builder\getdeps.py", line 400, in <module> sys.exit(main()) File ".\opensource\fbcode_builder\getdeps.py", line 393, in main return args.func(args) File ".\opensource\fbcode_builder\getdeps.py", line 236, in run change_status = fetcher.update() File "C:\open\fbsource\fbcode\opensource\fbcode_builder\getdeps\fetcher.py", line 451, in update return mapping.mirror(self.build_options.fbsource_dir, self.repo_dir) File "C:\open\fbsource\fbcode\opensource\fbcode_builder\getdeps\fetcher.py", line 400, in mirror f.write(name + "\n") File "C:\Python36\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 104-105: character maps to <undefined> ``` and this is caused by a file in libgit2: https://github.com/libgit2/libgit2/blob/master/tests/resources/status/%E8%BF%99, which is intended to test handling non-ASCII path. Python on Windows will write file in cp1252 encoding by default, which does not contain that Chines character. (Caveat: that file on my system doesn't have the correct file name as well, it is being encoded in IBM861 for some reason. However the characters in IBM861 does not exist in CP1252 either) Reviewed By: wez Differential Revision: D15281521 fbshipit-source-id: 8a75e32bc1042167c945d67e26b549fda83b6b41
-
Wez Furlong authored
Summary: The goal is to return an error code > 127 in the case of a transient, retryable, infrastructure error. This diff generates those in the case of failure in downloading a URL or from interacting with LFS. Reviewed By: strager Differential Revision: D15266838 fbshipit-source-id: 4f52a791320123968869032c37912dded464a86e
-
Wez Furlong authored
Summary: the cmake `add_test` and related functions allow specifying the WORKING_DIRECTORY to use for tests. We weren't respecting this value, so this diff looks up the WORKING_DIRECTORY from the ctest json info and adjusts the buck test info json blob that we pass on the testpilot. Since that interface only allows passing an argv array, we use the `cmake -E chdir` command to run a command in a specified directory in a portable manner. Reviewed By: strager Differential Revision: D15274012 fbshipit-source-id: 1f02d461d73178745794703d455494e31c2e09ed
-
Amol Bhave authored
Summary: std::remainder isn't supplied by all platforms. Specifically, uclibc doesn't have it. Do a similar case as with std::nextafter, i.e. implement a folly version in case it doesn't exists. Reviewed By: yfeldblum Differential Revision: D15291533 fbshipit-source-id: 96a70b52af11135102fda3183626df69cdaf4261
-
Amol Bhave authored
Summary: When building using uclibc, std::nextafter doesn't exist. This is similar case as for android, where std::nextafter doesn't exist. Add additional condition to choose folly supplied versions of this function. Reviewed By: yfeldblum Differential Revision: D15291534 fbshipit-source-id: f6c9e213248f4e2a6e88e20578aeade46dc85d6b
-
Yedidya Feldblum authored
Summary: [Folly] Add `sorted_unique` ctor to `sorted_vector_set` and `sorted_vector_map`. The `presorted` ctors are used with presorted but not necessarily unique inputs, so uniquify the inputs in that ctors. The untagged ctors which take a backing container presort but do not uniquify the backing container, so switch to presorting and uniquifying. Reviewed By: vitaut Differential Revision: D15215677 fbshipit-source-id: bf920103cfb6c297c186e5389701c08218dbc4b9
-
Yedidya Feldblum authored
Summary: [Folly] Less unneeded generality in `sorted_vector_set` and `sorted_vector_map` ctors in terms of `begin` and `end` - can just use member functions. Reviewed By: vitaut Differential Revision: D15215590 fbshipit-source-id: e6c8c92fdd9ae16963768b4f748aa07e9566f947
-
Yedidya Feldblum authored
Summary: [Folly] Use `sorted_equivalent` in `TDigest` since it is less ambiguous than `presorted` and it is a backport from C++20. Reviewed By: vitaut Differential Revision: D15195608 fbshipit-source-id: 07bb4c7e3750affd10f182efcdf3d9ee9e4a8cf8
-
Yedidya Feldblum authored
Summary: [Folly] Add missing comment for `TDigest::merge` overload. Reviewed By: vitaut Differential Revision: D15215559 fbshipit-source-id: 781105819d8160b73d6d70dc22937482f6851f4f
-
Yedidya Feldblum authored
Summary: [Folly] `sorted_unique_t`, `sorted_equivalent_t`, backporting from p0429 and C++20. Note that the existing `presorted_t` is ambiguous between `sorted_unique_t` as is assumed in `sorted_vector_set` and `sorted_vector_map` and `sorted_equivalent` as is assumed in `TDigest`. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0429r6.pdf Reviewed By: Orvid Differential Revision: D15215532 fbshipit-source-id: d90379d609088c6b306a0fc5c7db9b1ad3cdeee8
-
Amol Bhave authored
Summary: If multiple instances of this test are running, it is possible for a filename conflict to occur. This fixes that behavior by using a different temp name each time. Reviewed By: yfeldblum Differential Revision: D15258558 fbshipit-source-id: 40e71c57e68a90bc730fb5ba427d999789f6f88c
-
- 09 May, 2019 6 commits
-
-
Yuhan Hao authored
Summary: mstch is no longer required for fbthrift, we can remove it from oss build spec Reviewed By: vitaut Differential Revision: D15280267 fbshipit-source-id: 5008e54af9c927f23b0d6acbf0d9beb6e004eee1
-
Yuhan Hao authored
Summary: mstch is no longer required for fbthrift, we can remove it from manifests Reviewed By: vitaut Differential Revision: D15279652 fbshipit-source-id: 1772de7ab51fbfe048808f66290c4ca79de60608
-
Chad Austin authored
Summary: yfeldblum says convention here is 1 or empty (or 0). Reviewed By: yfeldblum Differential Revision: D15271809 fbshipit-source-id: 528e4143eaa8ee86807b06c824b3d84a586ec69c
-
Nick Sukhanov authored
Summary: We had a rare data race on next this diff is fixing that. Reviewed By: yfeldblum Differential Revision: D15120382 fbshipit-source-id: d3f0e521b941fdfcd1d968a42d7e8d240c3f74e6
-
Andrii Grynenko authored
Summary: There's no way we can size such queues appropriately. Reviewed By: yfeldblum Differential Revision: D15271382 fbshipit-source-id: 7d8c5b0a3faffac3e86cb87fa18d0597facc3189
-
Chad Austin authored
Summary: Detect at runtime whether the test runner expects skips to fail. Reviewed By: yfeldblum Differential Revision: D15210476 fbshipit-source-id: f1948d469b1008c85de9ed3ae93cc780caaf7f32
-
- 08 May, 2019 9 commits
-
-
Orvid King authored
Summary: Always throwing an exception in a function marked `noexcept` generates warnings that show up as errors, so just directly call `std::terminate()` instead. Fixes https://github.com/facebook/folly/issues/1124 Reviewed By: aary Differential Revision: D15263327 fbshipit-source-id: cf12bab76a5dc7da9414c6873fc0b0c1335691fa
-
Giuseppe Ottaviano authored
Summary: This can be useful to iterate bitmasks that are ORs of power-of-2 enum flags. Reviewed By: yfeldblum Differential Revision: D15245333 fbshipit-source-id: 661e0bdbe4468b693e37fda12e513202a3b3ed17
-
Wez Furlong authored
Summary: This controls whether tests are built or not. They are not built by default. When `--enable-tests` is turned on, tests are enabled for the named project only, not all of the deps. This results in a faster build, because eg: the number of tests in folly is very large and consumers of folly don't want to spend so much time waiting to build tests when really all they want to do is build their own project. Reviewed By: strager Differential Revision: D15246336 fbshipit-source-id: 2e22fd60c983b059f71639602712087f2a188ec6
-
Wez Furlong authored
Summary: This is needed to correctly pick up changes made to eg: cmake.defines sections in the manifest for first-party projects. Reviewed By: strager Differential Revision: D15246337 fbshipit-source-id: 35e525e885f87d6136d5ff3b94ebf34516ab947c
-
Victor Zverovich authored
Summary: Add an implicit conversion from `folly::fbstring` to `std::string_view` for compatibility with `std::string`. Among other things this enables formatting of `fbstring` with fmt. Reviewed By: yfeldblum Differential Revision: D15230438 fbshipit-source-id: 8f5a606c5e2a761cb332421130de638abfab4065
-
Amol Bhave authored
Summary: This field sets the IPV6_TCLASS attribute for the socket. Reviewed By: yfeldblum Differential Revision: D15240838 fbshipit-source-id: 81a14ee0a85010926b973c221184a82412975108
-
Amol Bhave authored
Summary: Add support for AF_UNIX datagram sockets in AsyncUDPSocket class. For UNIX sockets, the third argument to the socket() call should be 0, and getPort() throws. Fix these instances. Reviewed By: yfeldblum Differential Revision: D15073543 fbshipit-source-id: 14627d256a7f15104cbc22bc4b5ce03694c90405
-
Udip Pant authored
Summary: support for fbcode_build and travis build Reviewed By: siyengar Differential Revision: D15184766 fbshipit-source-id: 5117164c324d3d3c867592a88670a53b6f862477
-
Mingtao Yang authored
Summary: Taking the address of a static constexpr variable will generate undefined references until C++17, when static constexpr variables are implicitly inline. Turning this into a static constexpr function generates weak symbols for both C++14 & C++17. If anything, if you don't care about this, this makes it easier to add/remove ciphers since you no longer need to adjust the array size in the definition in SSLOptions.cpp. The original motivation for this change was to fix a build failure in proxygen oss, where declaring a wangle::SSLContextConfig would lead to an undefined symbol linker error. Reviewed By: lnicco Differential Revision: D15246869 fbshipit-source-id: 44c016b9eecdf999efbffdcd381c024a6ffb11ac
-
- 07 May, 2019 2 commits
-
-
Lee Howes authored
Summary: Propagate the executor parameter through all future callbacks to make it available at any point in the set of continuations. Reviewed By: yfeldblum Differential Revision: D15225264 fbshipit-source-id: 6433c9ccf8f3992fc16ebb1ea0171cc634fc3951
-
Yedidya Feldblum authored
Summary: [Folly] Move `co_reschedule_on_current_executor`, placing it alongside `co_current_executor`. (Note: this ignores all push blocking failures!) Reviewed By: lewissbaker Differential Revision: D15227871 fbshipit-source-id: 72c125ad792ebde6bb74e288b3404116cd279cb4
-