summaryrefslogtreecommitdiff
path: root/src/KingSystem/Utils/Thread/TaskQueueLock.cpp
blob: be7b1c5e1cbe2eda0414112bf18ea8948d009c92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "KingSystem/Utils/Thread/TaskQueueLock.h"
#include "KingSystem/Utils/Thread/TaskQueueBase.h"

namespace ksys::util {

TaskQueueLock::TaskQueueLock() = default;

TaskQueueLock::~TaskQueueLock() {
    unlock();
}

void TaskQueueLock::lock(TaskQueueBase* queue) {
    if (!mQueue) {
        mQueue = queue;
        mQueue->lock();
    }
}

void TaskQueueLock::unlock() {
    if (mQueue) {
        mQueue->unlock();
        mQueue = nullptr;
    }
}

}  // namespace ksys::util