Tags: wakensky/folly
Tags
Avoid recursive wrapping of reused buffers Summary: Existing reuse logic recursively wraps the tail buffers, which may result in a deep recursion on cleanup and lead to stack overflow (especially when executed on fibers). This diff adds an optimization to avoid doing this chaining and instead always clone original `IOBuf` for the purpose of ownership. Reviewed By: ot Differential Revision: D35167875 fbshipit-source-id: 824026c783f7ff19db31a06734699fd1fdea2b05
Remove Faulty Assert from JemallocHugePageAllocator Summary: This assert is just wrong, and is breaking in production. Jemalloc can ask for non-multiple-of-2MB chunks. This code is already resilient to that, AFAICT. Reviewed By: davidtgoldblatt Differential Revision: D34936556 fbshipit-source-id: e4ff49a37ce8c4ac7c378af995a58a17eb21020c
Revert D29856163: Use Huge Page Allocator in Zstd Context Pool Differential Revision: D29856163 (facebook@04c2275) Original commit changeset: 38e5f2e399c1 Original Phabricator Diff: D29856163 (facebook@04c2275) fbshipit-source-id: 172a495033b26880cc6a9fd5bd906a20cf20c66e
let coro::collectAllRange reserve its tasks vector Summary: It is tricky to get the size of an input range of unknown type. We must avoid iterating the range twice since iteration may be expensive. But we do expect the input range to work with range-for, giving us options. Effectively, if the natural iterator type of the input range is a random-access iterator, then we use that as the signal that getting the size of the input range will be free. Reviewed By: iahs Differential Revision: D34540902 fbshipit-source-id: 3ac40ab19461e4222168d9db3e241d07b1404bc4
further optimize relaxed atomic-bit-fetch-op by removing volatile Summary: The compiler does not move or remove `asm volatile` blocks even if it otherwise believes that all side-effects are unused or do not matter to surrounding instructions. But a relaxed operation ought to be subject to reordering. Reviewed By: Gownta Differential Revision: D34015943 fbshipit-source-id: 255716922faa32d95cdf9e49310db2dea1150035
cut class-qual in addrof fun-ptr in AtForkList Summary: No need for class-qualification within the same class. Differential Revision: D34370055 fbshipit-source-id: 53f382a5c6696aaa6f2e592834da297106477822
avoid the name I in some places Summary: There is a collision with `#define I` in glibc's `math/complex.h`. https://github.com/bminor/glibc/blob/glibc-2.35/math/complex.h#L53 Differential Revision: D34202940 fbshipit-source-id: 15c6f6cd1d01e8f84f228f6ef51b9c2a42f27071
condense the atomic-fetch-bit-op implementations Summary: Coalesce the inline-asm. Use invokers. Reviewed By: Gownta Differential Revision: D32302511 fbshipit-source-id: 6edf75c6ef820ed80e751d965174e5acfaac957e
avoid append-va-arg in FOLLY_SAFE_CHECK
Summary:
Since clang has a mode which rejects the append-va-arg construct as implemented in `FOLLY_PP_DETAIL_APPEND_VA_ARG`.
Do this by avoiding appending va-args to other args. Instead, take advantage of `operator()` as a workaround.
Avoids:
```
folly/Preprocessor.h:72:46: error: token pasting of ',' and __VA_ARGS__ is a GNU extension [-Werror,-Wgnu-zero-variadic-macro-arguments]
#define FOLLY_PP_DETAIL_APPEND_VA_ARG(...) , ##__VA_ARGS__
^
```
Reviewed By: luciang
Differential Revision: D33863906
fbshipit-source-id: 14912aca73e332ab811db4c0ac772a2d224a0666
Back out "Avoid copying ByteRange in OpenSSLHash hash_update()" Summary: Original commit changeset: 7d3b54d26bc3 Original Phabricator Diff: D33304127 (facebook@21329c4) Reviewed By: yfeldblum Differential Revision: D33733281 fbshipit-source-id: 683de43fc0d32aa40d3a6a6ef49f8b2d3760f48f
PreviousNext