Skip to content

Tags: sjwsl/folly

Tags

v2021.04.12.00

Conditionally include fmt/format.h (facebook#1551)

Summary:
Addresses - at least partly - issue facebook#1550

We'd like to limit our exposure to additional libraries. Fmt is a new dependency. It doesn't look like we need it in actuality; gating the include based on whether the file exists or not makes it possible for clients (specifically React Native for Windows) to not need to fork Folly.

Pull Request resolved: facebook#1551

Reviewed By: yfeldblum

Differential Revision: D27531237

Pulled By: Orvid

fbshipit-source-id: 340a7ff49be81872aaf23044945a1e8ecd157546

v2021.04.05.00

File::dupCloseOnExec()

Summary:
Close-on-exec is an important feature to avoid leaking file descriptors to spawned processes.

This diff adds `File::dupCloseOnExec()` function which is equivalent to `File::dup` function, but sets close-on-exec flag where supported (i. e. everywhere except Windows).

Practically most users want to have `closeOnExec = true` by default, but we need to preserve backwards compatibility, thus this diff leaves `dup` function as is.

Reviewed By: yfeldblum

Differential Revision: D27495214

fbshipit-source-id: 540deb2bc6c8fec626a0120bc20c345950dc8af7

v2021.03.29.00

SharedMutex TSAN: call destroy only if the annotation was created

Summary:
SharedMutex TSAN: call destroy only if the annotation was created

(Note: this ignores all push blocking failures!)

Reviewed By: yfeldblum

Differential Revision: D27379654

fbshipit-source-id: 90be62eb9e932c83e025a96dd36c4cba992e6267

v2021.03.22.00

Let assume be invocable anytime

Summary:
[Folly] Let `assume` be invocable anytime, including before and after `main` and in signal handlers, by switching from `CHECK` to `FOLLY_SAFE_CHECK`.

Requires further minimizing the deps of `FOLLY_SAFE_CHECK`.

Reviewed By: ot, Orvid, luciang

Differential Revision: D6636035

fbshipit-source-id: 026b15ea92ba37acf9b11d714d834b79da80936a

v2021.03.15.00

let some thunk members take variadic args

Summary: In particular, let `make` and `ctor` take variadic arguments since there is no cost.

Reviewed By: iahs

Differential Revision: D27024839

fbshipit-source-id: 805c65fdc79f60af1256a4c36be94bb22c163bdd

v2021.03.08.00

Explicitly qualify atomic_wait and atomic_notify function calls

Summary:
`std::atomic_wait()` and `std::atomic_notify_one()` are marked as unavailable.
Not really sure what that means, but it seems to be breaking some open source
builds facebook#1527.  Explicitly qualify the
calls into those functions to try and fix the build break.

Since we cannot conditionally import either of the above (because they are
marked as unavailable), we can't rely on the standard implementations.  To
prevent ADL from kicking in when the standard-library defines these, we fully
qualify these and use `tag_invoke` for the customization points used in tests.

Reviewed By: davidtgoldblatt

Differential Revision: D26742072

fbshipit-source-id: 9f44bbfd37530f5ecffa3e03d673cfb1df953299

v2021.03.01.00

no need to overload return_value

Summary: No need to overload coroutine `promise_type::return_value` to handle initializer list expressions - just template and default the parameter.

Reviewed By: Orvid

Differential Revision: D26508901

fbshipit-source-id: 61c4a2225355b0044638cd89b9153d599317a453

v2021.02.22.00

FiberManager's shutdown only waits for remote tasks to drain

Reviewed By: andriigrynenko

Differential Revision: D26572552

fbshipit-source-id: 035e1313cd4dec070555b5cd41efc58a0b4a948a

v2021.02.15.00

no shared_ptr in EventBaseLocal

Summary: [folly] no `shared_ptr` storage in `EventBaseLocal` since its refcount operations are unnecessary. Pare it down to `unique_ptr` with a straightforward fun-ptr deleter.

Reviewed By: iahs

Differential Revision: D26246619

fbshipit-source-id: 3d0214ccb6c4730ca7b573065b4468a0dce85d40

v2021.02.08.00

reexport coroutine_handle

Summary: Reexport `coroutine_handle` from `folly/experimental/coro/Coroutine.h`, which wraps inclusion of `experimental/coroutine`.

Differential Revision: D26227588

fbshipit-source-id: 32cdb2b6d87e90065bf9f140716d63670c04db5f