- 21 Oct, 2017 4 commits
-
-
James Sedgwick authored
Summary: That's everything that's going in executors/ except for Executor.h itself, which is included in hphp so will have to wait Reviewed By: mzlee Differential Revision: D6100274 fbshipit-source-id: 6be37892b1ad7f46828acfa6b2951e51b157a86a
-
James Sedgwick authored
Summary: Everything that's going in system/ besides CpuId and Subprocess, which are included in hphp Reviewed By: mzlee Differential Revision: D6102263 fbshipit-source-id: 564ef584c341a4ac79db14a9d58fe23ce51e78b3
-
James Sedgwick authored
Summary: as above (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D6099826 fbshipit-source-id: 20152487135aa8eaf6d2e99369801b6dde4992aa
-
Yedidya Feldblum authored
Summary: [Folly] Use `folly/portability/GTest.h` in `folly/executurs/test/`. Applying the general rule for folly tests to some recently-introduced violations. Reviewed By: Orvid Differential Revision: D6113707 fbshipit-source-id: f9a2961ac845489b85b5a539595e4c82df03d922
-
- 20 Oct, 2017 3 commits
-
-
James Sedgwick authored
Summary: as title, see moves (Note: this ignores all push blocking failures!) Reviewed By: mzlee Differential Revision: D6112001 fbshipit-source-id: 1eb10b44ae8ee1f90a10e05c29e48c99d824afa5
-
Christopher Dykes authored
Summary: This is C++, not C, so let's keep things modern. This is applying the modernize-redundant-void-arg clang-tidy check to Folly. Reviewed By: yfeldblum Differential Revision: D6106921 fbshipit-source-id: 06a56f036f59426df5dd475bf91a3f4a335266f5
-
Christopher Dykes authored
Summary: Via the clang-tidy check misc-argument-comment. Reviewed By: yfeldblum Differential Revision: D6107482 fbshipit-source-id: a1fe6215c31fae472ad3b6e05abea974d706794e
-
- 19 Oct, 2017 14 commits
-
-
Christopher Dykes authored
Summary: This time aided by clang-tidy's modernize-use-nullptr check. Reviewed By: yfeldblum Differential Revision: D6102739 fbshipit-source-id: aeb4bd0a8078d81cc88b766e0a034a37dd25fd1f
-
James Sedgwick authored
Summary: as above Reviewed By: knekritz Differential Revision: D6088687 fbshipit-source-id: 0efbb7f5fa33b5f553c0c2019658370fc6e8613f
-
Alex Yarmula authored
Summary: When timekeeper singleton no longer exists during shutdown and folly::Singleton::try_get() can return nullptr, make sure nullptr is handled gracefully. Reviewed By: yfeldblum Differential Revision: D6101311 fbshipit-source-id: fefeddfbd048d1a7632688bb3526db15b685dd72
-
Yedidya Feldblum authored
Summary: [Folly] Add `InlineExecutor.cpp` to `Makefile.am`. Reviewed By: Orvid Differential Revision: D6101859 fbshipit-source-id: 4cd0f875dedb548189722fd719f4424d485e1b02
-
Yedidya Feldblum authored
Summary: [Folly] Fix `folly/fibers/` build on older boost. Where `jump_fcontext` takes `intptr_t` rather than an actual pointer, and we warn about implicit conversions from pointers to integral types. Reviewed By: Orvid Differential Revision: D6098230 fbshipit-source-id: 61bd7bdff5de728d3febe8b35c97d024ab6f236a
-
Christopher Dykes authored
Summary: The style guidelines say control flow should always have curly braces, and we follow that, mostly. This just uses clang-tidy to clean up everywhere that we weren't. Reviewed By: markisaa, luciang Differential Revision: D6097377 fbshipit-source-id: bfe6766c37bd863ecf68851ef93265a200d4259d
-
James Sedgwick authored
Summary: as above Reviewed By: yfeldblum Differential Revision: D6086563 fbshipit-source-id: ab7f50ba46ebd1dbef6438f956258b2fbb13cb5c
-
Peter Alexander authored
Summary: Simple addition. Easy to track externally, but might as well provide it in the class if it is readily available. Reviewed By: yfeldblum Differential Revision: D6093826 fbshipit-source-id: 9d8c02891b2cea9ce0d3f6ea78e1e0055b536eb8
-
Yedidya Feldblum authored
Summary: This reverts commit 64eb65aac8e3e7cd0126e65ca3998bfe167e2d73 bypass-lint Differential Revision: D6050464 fbshipit-source-id: 1ed63f30837dc11ae57b316f1f7cb233a210894a
-
Walker Mills authored
Summary: AIUI, if there is no executor available, then callbacks are executed inline. `folly::window` uses a recursive helper function (`spawn`) to handle chaining callbacks. So if `window` is used on a large enough collection of `Future`s without executors (e.g., created by `makeFuture`, or have otherwise already completed), you get a stack overflow. A minimal repro looks like: ``` int main(int argc, char** argv) { std::vector<int> v(100000); for(int i=0; i < v.size(); i++) { v[i] = i; } std::vector<folly::Future<folly::Unit>> f = folly::window( std::move(v), [](int /* unused */) { return folly::makeFuture(); }, 1); folly::collectAll(f).get(); } ``` This diff resolves the issue by adding an overload of `folly::window` which takes an executor as its first parameter. The executor-less `window` overload calls through to the new function using an `InlineExecutor` as the default executor. Reviewed By: yfeldblum Differential Revision: D6038733 fbshipit-source-id: 5dcab575592650efa2e106f12632ec06817a0009
-
Yedidya Feldblum authored
Summary: [Folly] Move `folly/Hash.h` to `folly/hash/`. Reviewed By: jsedgwick Differential Revision: D6050464 fbshipit-source-id: 64eb65aac8e3e7cd0126e65ca3998bfe167e2d73
-
Arkady Shapkin authored
Summary: Workaround a bug in template instantiation in MSVC 2017 U3/4 with /permissive- https://developercommunity.visualstudio.com/content/problem/81223/incorrect-error-c5037-with-permissive.html /cc Orvid Closes https://github.com/facebook/folly/pull/691 Reviewed By: yfeldblum Differential Revision: D6085652 Pulled By: Orvid fbshipit-source-id: f068dc3f8e474163815fc497b05410fe76834a52
-
Boliu Xu authored
Summary: As titled. Reviewed By: yfeldblum Differential Revision: D6087099 fbshipit-source-id: 1c346fa6f65b5ea58e728759905560ae5ad9cc9d
-
Richard Fillman authored
Summary: Compiled mcrouter with the 'Wpadded' flag to try to find any wasted space. Mcrouter itself did not have anything, but there was a lot in AsyncSocket.h and AsyncSSLSocket.h so looked into those and removed a bit of wasted space Reviewed By: yfeldblum, brianwatling Differential Revision: D6033977 fbshipit-source-id: 2dc127208e09980be6a5db576b45d30ac6e044ff
-
- 18 Oct, 2017 10 commits
-
-
James Sedgwick authored
Summary: as above Reviewed By: yfeldblum Differential Revision: D6076779 fbshipit-source-id: 4c223ab9fce3be8544f6f807781c3d0a99b61dad
-
Andrew Krieger authored
Summary: MSVC has a bug where it is unable to match an out-of-line constructor (and possibly other kind of member) to the definition if it is implicitly referenced before the definition is processed. The guilty method is SemiFuture<Unit> makeSemiFuture(). Moving it after the constructor definitions resolves the issue. Reviewed By: yfeldblum Differential Revision: D6042277 fbshipit-source-id: 97fe97c0edf3df3d9e3b808968b450c73959b600
-
James Sedgwick authored
Summary: see title Reviewed By: yfeldblum Differential Revision: D6062601 fbshipit-source-id: edd9a5e85f4ebecd1a6f1004a4d3b8b43b935c2b
-
Yedidya Feldblum authored
Summary: [Folly] Move `folly/MallctlHelper.h` to `folly/memory/`. Reviewed By: aary Differential Revision: D6087216 fbshipit-source-id: 4e0fa4aea976e2578127d3c340e0e9b559a224ca
-
James Sedgwick authored
Summary: as above Reviewed By: ngoyal Differential Revision: D6087941 fbshipit-source-id: 948ff4f2faa87dd34f87d14ea01c83335f850a27
-
Christopher Dykes authored
Summary: Because we do this in a few places, and `nullptr` makes it far clearer what the intention is. Note that with `-Wzero-as-null-pointer-constant` under GCC, doing `std::function<void()> f = {}` initializes `f` with a `0` rather than `nullptr`, triggering the warning, so I've enabled it there as well. It is not currently possible to actually enable `-Wzero-as-null-pointer-constant`, because GCC 5 reports conversions resulting from a default value as occuring at the call-site rather than at the location where the parameter is defined, and the default allocator in libstdc++ is not clean for this particular warning -_-... Reviewed By: yfeldblum Differential Revision: D6046746 fbshipit-source-id: 6135bb20a503c861838575cf973324d74d75ca69
-
James Sedgwick authored
Summary: as title Reviewed By: yfeldblum Differential Revision: D6062437 fbshipit-source-id: 4f99e779e280fdb0b1f035013caff18764e86ab5
-
Yedidya Feldblum authored
Summary: [Folly] Lift the `invoke` helper in `Function.h`. Reviewed By: aary Differential Revision: D6050569 fbshipit-source-id: da07901b8d058b0199d23db675c0fb9082fdf67d
-
James Sedgwick authored
Summary: as above Reviewed By: yfeldblum Differential Revision: D6076757 fbshipit-source-id: afe144129e8a0242ba6baee96a84a9084e6e2571
-
Yedidya Feldblum authored
Summary: [Folly] Simplify impl of `setThreadName`. Reviewed By: Orvid, ot Differential Revision: D6075179 fbshipit-source-id: 720f29cc688f97b936813898238b8eb26b8a6141
-
- 17 Oct, 2017 7 commits
-
-
Dan Melnic authored
Summary: Do not set WriteFlags::WRITE_MSG_ZEROCOPY if the buffer isShared() Reviewed By: yfeldblum Differential Revision: D6068711 fbshipit-source-id: fff14dcd4fcb20c9dbb60794420845042518922c
-
Yedidya Feldblum authored
Summary: [Folly] Un-templatize `Range::str`. Reviewed By: ot Differential Revision: D6075642 fbshipit-source-id: 08fc399c43750d34463de7634be4fe386b5db97c
-
Yedidya Feldblum authored
Summary: [Folly] Refactor `ShutdownSocketSet` atomic state machine. * Format. * Use `while` over `goto`. * Avoid `memory_order_acq_rel` as the single-argument memory order; some platforms fail to build that. * Use `memory_order_relaxed` for all atomic operations because stronger memory orders are not actually required: the atomic state never serves as a barrier for synchronizing loads and stores of associated data because there is no associated data. Reviewed By: davidtgoldblatt Differential Revision: D6058292 fbshipit-source-id: d45d7fcfa472e6e393a5f980e75ad9ea3358bab3
-
Yedidya Feldblum authored
Summary: [Folly] An `InlineExecutor` singleton. Using the Leaky Meyers Singleton pattern, so that it is always available whenever required. Differential Revision: D6074534 fbshipit-source-id: bd4c9cd6a1e60c80de5d2eef1cb6a1e7f16b4e50
-
Andrew Krieger authored
Summary: This overload of estimateSpaceNeeded was taking a Src by value, but Src is constrained by IsSomeString which only returns true for std::string or fbstring, so this was inducing a copy in any situation where folly::to<> is used with varargs which contain fb/string arguments. Reviewed By: yfeldblum Differential Revision: D6059517 fbshipit-source-id: adc239f9049e161fc4b750bae0e3de5dbdcd1bfc
-
Yedidya Feldblum authored
Summary: [Folly] Make `Range.h` and `FBString.h` mutually independent. This means that `Range` cannot directly know about `fbstring`, so any interactions between the two types must be indirected through templates. Motivation: `FBString.h` is a relatively heaviweight `#include` for things that need `Range.h` but which do not use `fbstring`. Reviewed By: ericniebler Differential Revision: D6062434 fbshipit-source-id: e2f21c33f482eadffd0a8679eff4ece59bab53e9
-
Yedidya Feldblum authored
Summary: [Folly] Shrink integral `hasher` specialization implementations. Instead of giving them bodies, just use inheritance. Reviewed By: luciang Differential Revision: D6067757 fbshipit-source-id: f71bd36132e1b66002493474825894b03754b34f
-
- 16 Oct, 2017 2 commits
-
-
Chad Austin authored
Reviewed By: simpkins Differential Revision: D6068742 fbshipit-source-id: a3b3b7fe4a6da8f250e5b9593f66b9f8a9345136
-
qiao hai-jun authored
Summary: Closes https://github.com/facebook/folly/pull/692 Differential Revision: D6066294 Pulled By: yfeldblum fbshipit-source-id: a533527058b8b5bc71fb6f40bad31a50e8c3f585
-