diff options
| author | monster <[email protected]> | 2022-07-07 14:41:37 +0300 | 
|---|---|---|
| committer | monster <[email protected]> | 2022-07-07 14:41:37 +0300 | 
| commit | 06e5c21a835c0e923506c4ff27929f34e00761c2 (patch) | |
| tree | 75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /library/cpp/threading/future/subscription/subscription.cpp | |
| parent | 03f024c4412e3aa613bb543cf1660176320ba8f4 (diff) | |
fix ya.make
Diffstat (limited to 'library/cpp/threading/future/subscription/subscription.cpp')
| -rw-r--r-- | library/cpp/threading/future/subscription/subscription.cpp | 65 | 
1 files changed, 0 insertions, 65 deletions
diff --git a/library/cpp/threading/future/subscription/subscription.cpp b/library/cpp/threading/future/subscription/subscription.cpp deleted file mode 100644 index a98b4a4f036..00000000000 --- a/library/cpp/threading/future/subscription/subscription.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "subscription.h" - -namespace NThreading { - -bool operator==(TSubscriptionId const& l, TSubscriptionId const& r) noexcept { -    return l.StateId() == r.StateId() && l.SubId() == r.SubId(); -} - -bool operator!=(TSubscriptionId const& l, TSubscriptionId const& r) noexcept { -    return !(l == r); -} - -void TSubscriptionManager::TSubscription::operator()() { -    Callback(); -} - -TSubscriptionManagerPtr TSubscriptionManager::NewInstance() { -    return new TSubscriptionManager(); -} - -TSubscriptionManagerPtr TSubscriptionManager::Default() { -    static auto instance = NewInstance(); -    return instance; -} - -void TSubscriptionManager::Unsubscribe(TSubscriptionId id) { -    with_lock(Lock) { -        UnsubscribeImpl(id); -    } -} - -void TSubscriptionManager::Unsubscribe(TVector<TSubscriptionId> const& ids) { -    with_lock(Lock) { -        UnsubscribeImpl(ids); -    } -} - -void TSubscriptionManager::OnCallback(TFutureStateId stateId) noexcept { -    THashMap<ui64, TSubscription> subscriptions; -    with_lock(Lock) { -        auto const it = Subscriptions.find(stateId); -        Y_VERIFY(it != Subscriptions.end(), "The callback has been triggered more than once"); -        subscriptions.swap(it->second); -        Subscriptions.erase(it); -    } -    for (auto& [_, subscription] : subscriptions) { -        subscription(); -    } -} - -void TSubscriptionManager::UnsubscribeImpl(TSubscriptionId id) { -    auto const it = Subscriptions.find(id.StateId()); -    if (it == std::end(Subscriptions)) { -        return; -    } -    it->second.erase(id.SubId()); -} - -void TSubscriptionManager::UnsubscribeImpl(TVector<TSubscriptionId> const& ids) { -    for (auto const& id : ids) { -        UnsubscribeImpl(id); -    } -} - -}  | 
