aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/session_job_count.cpp
blob: 33322b19102648df480ec48ba5e7c602059a7851 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "session_job_count.h"

#include <util/system/yassert.h>

using namespace NBus;
using namespace NBus::NPrivate;

TBusSessionJobCount::TBusSessionJobCount()
    : JobCount(0)
{
}

TBusSessionJobCount::~TBusSessionJobCount() {
    Y_VERIFY(JobCount == 0, "must be 0 job count to destroy job");
}

void TBusSessionJobCount::WaitForZero() {
    TGuard<TMutex> guard(Mutex);
    while (AtomicGet(JobCount) > 0) {
        CondVar.WaitI(Mutex);
    }
}