9 std::function<void()> storage;
14 ~Dtor() { f.storage.~function(); }
16 std::atomic_bool available;
19 CancellableCallback(std::function<
void()>&& callback) : callback{std::move(callback)}, available{
true} {}
22 if (available.exchange(
false)) {
32 if (available.exchange(
false)) {
42 if (available.exchange(
false)) {
44 return f(std::move(callback.storage));