- 06 Jun, 2019 8 commits
-
-
Yedidya Feldblum authored
Summary: Replace inclusions of `folly/futures/helpers.h` with `folly/futures/Future.h` to avoid the cyclic include trap. Differential Revision: D15600549 fbshipit-source-id: 19950be24a7437fb1fbec293e24058adf17343ca
-
Wez Furlong authored
Summary: We sometimes see some flakeyness in our internal CI, so we can live without it there. Reviewed By: pkaush Differential Revision: D15695124 fbshipit-source-id: 1d76ae89e245d9c95937e8818826c544c0ae8fc3
-
Takshak Chahande authored
Summary: Currently, AsyncSocket's `connect` API creates new socket, set various options, bind it to passed argument address and used it for connecting to server. While most of the things are handled inside that single connect routine; sometimes if the caller would like to do few more additional operations before actual connect happens; caller would like to have hold on the underneath used socket. In order to do that additional operation on the socket, this diff provides the facility to provide custom pre-connect hook `preConnect(NetworkSocket fd)` in the `ConnectCallback` which will be invoked just before the actual server connect. Reviewed By: yfeldblum Differential Revision: D15282727 fbshipit-source-id: 5beac55c77a9537ee4f26856dd5f78c5224a1f49
-
Uladzislau Paulovich authored
Summary: Input and output types for the cast are the same (except const qualifier) and therefore it's not required. Reviewed By: milend Differential Revision: D15694981 fbshipit-source-id: d5a811d97cc145ba9c232b79f6c8fa52041b0cf0
-
Yedidya Feldblum authored
Summary: [Folly] `XLOG_EVERY_N_THREAD`. Implemented with a single per-thread map for all `XLOG_EVERY_N_THREAD` collectively. This approach has better TLS overhad than a `thread_local` counter per `XLOG_EVERY_N_THREAD`, at the cost of integer-keyed map lookups. While the `thread_local` counter approach is twice as fast as this approach for a noop log-handler, it is expected that the runtime overhead of real log-handlers will make this type of saving immaterial. Reviewed By: simpkins, luciang Differential Revision: D15293529 fbshipit-source-id: 7af535a0d329473126a0e4dcffc19d750e8b8b10
-
Miroslav Crnic authored
Summary: Lifo sem exposes allocateNode and tryWaitOrPush as protected which allows inherited classes custom Node implementation, creation and enqueueing. tryRemoveNode was private which prevented inherited classes from dequeueing a Node without signaling shutdown. This diff fixes it Reviewed By: shixiao Differential Revision: D15647287 fbshipit-source-id: 5b26a9616f6de559224f9d8c38230780c78a7cf5
-
Yedidya Feldblum authored
Summary: [Folly] Let `KeepAlive::copy()` allow dummy executors to expire, and not attempt to dereference them to perform an acquire - which, as is known in advance, would fail and return false were the executor still to be alive. Reviewed By: andrewcox Differential Revision: D15683240 fbshipit-source-id: e2026493af6936b8f0f1b8fe3c1cb97d2bf0f96e
-
Yedidya Feldblum authored
Summary: [Folly] Split KeepAlive concepts of dummy and alias. A dummy KeepAlive is one for an executor which does not actually support keep-alive semantics. An alias KeepAlive is one for which there is another KeepAlive, with a surrounding lifetime, to the same executor. Reviewed By: andrewcox Differential Revision: D15683241 fbshipit-source-id: a5809b06c90ed4a655a6973fac67137b5e1981dc
-
- 05 Jun, 2019 7 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Avoid gcc7 lambda-captures bug in `SerialExecutor` test. ``` folly/executors/test/SerialExecutorTest.cpp: In lambda function: folly/executors/test/SerialExecutorTest.cpp:66:40: error: declaration of 'i' shadows a previous local [-Werror=shadow] folly/executors/test/SerialExecutorTest.cpp:60:12: note: shadowed declaration is here folly/executors/test/SerialExecutorTest.cpp: In function 'void simpleTest(const std::shared_ptr<folly::Executor>&)': folly/executors/test/SerialExecutorTest.cpp:74:45: error: already captured 'i' in lambda expression [-Werror] folly/executors/test/SerialExecutorTest.cpp: In lambda function: folly/executors/test/SerialExecutorTest.cpp:74:62: error: 'i' is not captured folly/executors/test/SerialExecutorTest.cpp:74:46: note: the lambda has no capture-default folly/executors/test/SerialExecutorTest.cpp:60:12: note: 'int i' declared here ``` Fixes #1154. Reviewed By: andriigrynenko Differential Revision: D15629657 fbshipit-source-id: fec82e9d54b2c79a7f54f366ec8a19ad7dc198e9
-
Joe Loser authored
Summary: - Cut `FOLLY_HAVE_COMPARE_EQUIVALENT` as this is `1` for Clang 3.4 onward (regardless of `libstdc++` or `libc++`) and also `1` for GCC versions we support. Pull Request resolved: https://github.com/facebook/folly/pull/1157 Reviewed By: Orvid Differential Revision: D15641688 Pulled By: yfeldblum fbshipit-source-id: 0602913b375a406cce6337e43ba708362a94d444
-
Shrikrishna Khare authored
Summary: This is towards getting open source FBOSS to build using fbcode_builder. libmnl is one of the dependencies for FBOSS. This patch adds a manifest file to build the specific version of libmnl for FBOSS. Reviewed By: wez Differential Revision: D15633176 fbshipit-source-id: dd51997ae950f53842711fbf2d044e84cdf437e7
-
Shrikrishna Khare authored
Summary: This is towards getting open source FBOSS to build using fbcode_builder. OpenNSL is one of the dependencies for FBOSS. OpenNSL is github repository with headers and prebuilt opaque library. Thus, we can't/don't need to build it. Thus, OpenNSL manifest uses NopBuilder. fbcode_builder expects the library to be in installed/lib and headers to be in installed/include, but OpenNSL lib structure is different. Thus, add explicit [install.fields] rule for bin/wedge => lib. Once a rule(s) is provided, we must provide rule(s) for all, so add rule for include => include as well. Reviewed By: wez Differential Revision: D15593639 fbshipit-source-id: facb36ff7b9a31f5952ecbc1a9fdb834c0e68d11
-
Shrikrishna Khare authored
Summary: This is towards getting open source FBOSS to build using fbcode_builder. iproute2 is one of the dependencies for FBOSS. This patch adds a manifest file to build the specific version of iproute2 needed for FBOSS. Additionally, the default git clone depth of 100 is insufficient for the version of iproute2 FBOSS depends on. Thus, this patch extends the git SCHEMA to add optional argument depth. The default remains 100. The usual /configure --prefix does not work for iproute2. Thus, we need to add a custom builder that: - copies sources to build directory, builds, and - installs to installed directory using DEST_DIR. - it must also explicitly copy include from build dir to install dir Reviewed By: wez Differential Revision: D15588809 fbshipit-source-id: ac5eab24134e078d88b85b4be433c78b05ef8ce5
-
Yedidya Feldblum authored
Summary: [Folly] Use std interface in fibers mutex types: `try_lock_for`, `lock_shared`, etc. This makes fibers mutex types play well with `Synchronized`. Reviewed By: mnv104 Differential Revision: D15440755 fbshipit-source-id: 068b0c0b973577729f76f78c9063ff2ec06f4d90
-
Marshall Cline authored
Summary: Create pipe-adapters ("pipe fittings") that allow a `|`-based pipeline mixing {std-containers and/or range-v3} with folly::gen, e.g., ``` auto result = myVec // anything consistent with range-v3 or these adapters | ranges::view::filter(...) // zero-or-more range-v3 pipe-elems | <adapter-goes-here> // <==**one of the pipe-adapters provided by this task** | folly::gen::blah(); // trailing pipe-elems are folly::gen ``` This diff supplies only adapters that transition from {std-containers and/or range-v3} to folly::gen, but not the other way around. Q&A: * Why distinguish containers from range-v3's? E.g., container_to_gen vs. rangev3_to_gen? * Containers and range-v3's have different copy-costs: range-v3's have O(1) copy * Using two different names lets us separate the implementations so we can know which can be copied without significant overhead. * Why `#include` range-v3 from inside folly::gen? Why the dependency? * That `#include` / dependency adds value to the process, and it is included only for the client-files that need it. * It adds value to the process since the subset of client-files to be migrated are precisely the same subset of client-files that _need_ to include range-v3. * The alternative would be to add the `#include` out in all the various client-files during the migration process, and we will do that as the last step in the migration process. * The migration process is sped up by including range-v3 for that specific subset of client-files _and_ it hurts no one since only those who need that `#include` actually get it. * Note: we limit the `#include` to the subset of files to be migrated via the `FOLLY_USE_RANGEV3` define; see folly-config.h. Reviewed By: yfeldblum Differential Revision: D15035294 fbshipit-source-id: 694979850d1f35dd382e3afde792ea51a2397af0
-
- 04 Jun, 2019 13 commits
-
-
Adam Simpkins authored
Summary: Change the EventBaseTest code to request precise timing from libevent. libevent 2.1+ uses a coarse monotonic clock by default on Linux. This causes several of folly's timing-related tests for EventBase to fail most of the time. This changes the tests to request precise timing from libevent2, using the `EVENT_PRECISE_TIMER`. While we can request this programmatically, doing so portably across libevent versions is awkward, so the environment variable is the easiest solution for now. Alternatively we could change the tests to use larger, coarser timeouts to make them pass reliably. However, this would make the tests slower. Differential Revision: D15528322 fbshipit-source-id: 20dc55de36235e63910cf7fb5b67c6f2d509cc15
-
Adam Simpkins authored
Summary: Put file-local classes and helper functions into an unnamed namespace. Reviewed By: yfeldblum Differential Revision: D15528323 fbshipit-source-id: 9e90aafe4382d9ba237823fea1e68dbea7fa1f2f
-
Yedidya Feldblum authored
Summary: [Folly] Fix references to `TTransportException` in `folly/io/async/` to refer to `AsyncSocketException`. Reviewed By: jmswen, knekritz Differential Revision: D15628173 fbshipit-source-id: f6d36ede5e8b33d9407751733bcc9a7fa764815c
-
Joe Loser authored
Summary: - Clang 8 warns about appending integers to a string using `operator+` without a cast. ``` ../folly/test/FixedStringTest.cpp:353:23: warning: adding 'unsigned int' to a string does not append to the string [-Wstring-plus-int] a.append("X world!" + 2u, 5u); ~~~~~~~~~~~^~~~ ../folly/test/FixedStringTest.cpp:353:23: note: use array indexing to silence this warning a.append("X world!" + 2u, 5u); ^ & [ ] ../folly/test/FixedStringTest.cpp:354:23: warning: adding 'unsigned int' to a string does not append to the string [-Wstring-plus-int] a.append("X world!" + 7u); ~~~~~~~~~~~^~~~ ../folly/test/FixedStringTest.cpp:354:23: note: use array indexing to silence this warning a.append("X world!" + 7u); ^ & [ ] ../folly/test/FixedStringTest.cpp:365:23: warning: adding 'unsigned int' to a string does not append to the string [-Wstring-plus-int] a.append("X world!" + 2u, 5u); ~~~~~~~~~~~^~~~ ../folly/test/FixedStringTest.cpp:365:23: note: use array indexing to silence this warning a.append("X world!" + 2u, 5u); ^ & [ ] ../folly/test/FixedStringTest.cpp:366:23: warning: adding 'unsigned int' to a string does not append to the string [-Wstring-plus-int] a.append("X world!" + 7u); ~~~~~~~~~~~^~~~ ../folly/test/FixedStringTest.cpp:366:23: note: use array indexing to silence this warning a.append("X world!" + 7u); ^ & [ ] ``` - Fix this warning by creating a local char[] and using that to append to the fixed string Pull Request resolved: https://github.com/facebook/folly/pull/1148 Reviewed By: ericniebler Differential Revision: D15618465 Pulled By: yfeldblum fbshipit-source-id: 7f72b3597f51d99665da85744aeb8805eb2e8f00
-
Yedidya Feldblum authored
Summary: [Folly] Fix `PriorityUnboundedBlockingQueue` priority translation from `Executor` priorities to offsets as used by `PriorityUnboundedBlockingQueueSet`. Reviewed By: andriigrynenko Differential Revision: D15619435 fbshipit-source-id: 1c5d4d68dfde7f9db07d64f40e73717b48a05ed1
-
Neel Goyal authored
Summary: If performRead is called with bufLen > 2GB then overflow occurred with the value passed to SSL_read. We'll clamp it here. This should be fine since performRead will be called again as there is more data to read. Reviewed By: andriigrynenko, knekritz, mingtaoy Differential Revision: D15625000 fbshipit-source-id: 8633686a76baebd796139f3b20c6f7286339fd96
-
Kyle Nekritz authored
Summary: Exposed by D15610738. Reviewed By: ngoyal Differential Revision: D15622920 fbshipit-source-id: f3058c69098ae740d43f27e8161e99b3c5a6b995
-
Matthieu Martin authored
Summary: The main change is to grab a wlock in doSetContextData, which enables to make the code more readable, and (insignificantly) more efficient. Grabbing the wlock directly is also strictly better for both `set` and `override`. `setIfAbsent` is the only one to potentially suffers from the lock change, in the case where it already exists. But `setIfAbsent` isn't used by either of the guards, which are the recommended way of changing values in RequestContext. So it seems incorrect to optimize for it, and overkill to fork the code. Reviewed By: yfeldblum Differential Revision: D15604768 fbshipit-source-id: 44f564b09ff50e8bfe0e1c4cf5ee2d77b654e929
-
Orvid King authored
Summary: A very basic function that if done incorrectly will get optimized away as undefined behavior. For now keep things simple and only support addition of unsigned values. Reviewed By: yfeldblum Differential Revision: D15609542 fbshipit-source-id: 70d5fde784f57d3d52e6122352a885d7a835f104
-
Yedidya Feldblum authored
Summary: [Folly] Fix SerialExecutor task destruction order where tasks are destroyed outside of the request-context scope. Reviewed By: andriigrynenko Differential Revision: D15618395 fbshipit-source-id: e2ec8e42137d14f549f92dbc96a904eadcc0a587
-
REDMOND\acoates authored
Summary: A couple of changes to support building folly in MSVC/win32 for x86 and arm platforms. Pull Request resolved: https://github.com/facebook/folly/pull/1147 Reviewed By: Orvid Differential Revision: D15592309 Pulled By: yfeldblum fbshipit-source-id: 97860ab9309e5492bfadac56079af735741d4a2c
-
Mingtao Yang authored
Reviewed By: yfeldblum Differential Revision: D15610738 fbshipit-source-id: 367919db6465536e215735400652d33290930ca0
-
Stiopa Koltsov authored
Summary: There are two variants of `strerror_r` function, one returns `int`, and another returns `char*`. Selecting proper version using preprocessor macros portably is extremely hard. For example, on Android function signature depends on `__USE_GNU` and `__ANDROID_API__` macros (https://git.io/fjBBE). So we are using C++ overloading trick: we pass a pointer of `strerror_r` to `invoke_strerror_r` function, and C++ compiler selects proper function. Reviewed By: yfeldblum Differential Revision: D15484722 fbshipit-source-id: fc0bd45fa67dc401631ffc185c9fad231e4a48a0
-
- 03 Jun, 2019 6 commits
-
-
Matthieu Martin authored
Summary: Title, unecessary cost in case of conflict Reviewed By: yfeldblum Differential Revision: D15604536 fbshipit-source-id: ad40c84b822a96a688f810b24b539ac162fdcc59
-
REDMOND\acoates authored
Summary: As part of trying to get our internal usage of folly off a fork, we have various compiler warnings set ridiculously high. This gets rid of a couple of warnings that we hit in folly code. Pull Request resolved: https://github.com/facebook/folly/pull/1145 Reviewed By: LeeHowes, Orvid Differential Revision: D15586209 Pulled By: yfeldblum fbshipit-source-id: dc3ebffbddd0b82f2c2ee719a95b7fcfe551e074
-
Woo Xie authored
Summary: swap the order of getLocalAddress() and getPeerAddress(), so we are more likely to log the local address after exception happens. Reviewed By: knekritz Differential Revision: D15559814 fbshipit-source-id: 50b7a964d6c3add2e4ae1da9fde8e9e4e67e5715
-
Matthieu Martin authored
Summary: Grabbing the mutex of the newly created context is unecessary cost. folly::Synchronized's constructor support this optimization, so it's an easy change. Reviewed By: yfeldblum Differential Revision: D15600165 fbshipit-source-id: e92570a7ac7ac1e908d7c797bed6de22f940d387
-
Matthieu Martin authored
Summary: The shallow copy code path currently iterates and copies all values manually. Instead of benefiting from the underlying data collection's implementation of self-copy. At the very least, it's simpler looking code. Inheriting unique_ptr is usually discouraged, but in this specific (internal impl detail) use case, I can't foresee any risk. Reviewed By: yfeldblum Differential Revision: D15599260 fbshipit-source-id: 73edea27a27e8fbc8b057cf3e974ee3d83a6e760
-
Gautham B A authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/1141 Reviewed By: LeeHowes Differential Revision: D15560029 Pulled By: yfeldblum fbshipit-source-id: 5f0d5ee8d09be834d1216d4c39244e0855d2dc0f
-
- 01 Jun, 2019 5 commits
-
-
Joe Loser authored
Summary: - Old versions of GCC (specifically, GCC 4.7) warn about uninitialized memory in `Expected.h` - Newer versions of GCC do not complain, so remove the pragma push/pop which was disabling the warning. Pull Request resolved: https://github.com/facebook/folly/pull/1143 Reviewed By: ericniebler Differential Revision: D15586279 Pulled By: yfeldblum fbshipit-source-id: 7b01934c7601ecf035f1e05f2ed3e5f799cf25b9
-
Rosen Penev authored
Summary: This can be used to check if ChaCha20 is available for use. Signed-off-by: Rosen Penev <rosenp@gmail.com> related: https://github.com/facebookincubator/fizz/pull/27 Pull Request resolved: https://github.com/facebook/folly/pull/1146 Reviewed By: knekritz Differential Revision: D15583706 Pulled By: yfeldblum fbshipit-source-id: 1195d623098018992811cd7d6cef72e2366ace19
-
Yedidya Feldblum authored
Summary: [Folly] Fix a regression in per-task allocations in `SerialExecutor`. Reviewed By: andriigrynenko Differential Revision: D15589007 fbshipit-source-id: 4461798435833cb317b41cfea932762eb7ac8662
-
Yedidya Feldblum authored
Summary: [Folly] Cut outdated comment in `F14Table`, referring to the return value of a function which returns `void`. Reviewed By: nbronson Differential Revision: D15586980 fbshipit-source-id: b75f7b989c39b52e589ce8051663085201939433
-
Yedidya Feldblum authored
Summary: [Folly] Move `SerialExecutor` test-specific helper types into the tests which need them. Reviewed By: andriigrynenko Differential Revision: D15587721 fbshipit-source-id: 603e5381b2e00b4317f7e9836c6102238158c5d0
-
- 31 May, 2019 1 commit
-
-
Roman Leventov authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/1142 Reviewed By: shixiao Differential Revision: D15574540 Pulled By: yfeldblum fbshipit-source-id: 2ce91f7510f0b278677c15b3a9f1f80b43ff8998
-