aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/session_job_count.cpp
blob: bdbf35c2b92df502200a6e810ded5a3550680c3d (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_ABORT_UNLESS(JobCount == 0, "must be 0 job count to destroy job");
}

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