megamove
This commit is contained in:
parent
c2e201f813
commit
f51105bde0
114 changed files with 92 additions and 0 deletions
34
src/tsqueue.cpp
Normal file
34
src/tsqueue.cpp
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#include "tsqueue.h"
|
||||
|
||||
TSQueue::TSQueue()
|
||||
: newData(Win32Event::Reset::Manual, Win32Event::Initial::Clear)
|
||||
{}
|
||||
|
||||
void TSQueue::add(t_Callable callable)
|
||||
{
|
||||
std::lock_guard<std::mutex> g(m);
|
||||
futureQueue.push_back(std::move(callable));
|
||||
newData.set();
|
||||
}
|
||||
|
||||
bool TSQueue::empty()
|
||||
{
|
||||
std::lock_guard<std::mutex> g(m);
|
||||
return futureQueue.empty();
|
||||
}
|
||||
|
||||
TSQueue::t_Callable TSQueue::pop()
|
||||
{
|
||||
std::lock_guard<std::mutex> g(m);
|
||||
auto f = std::move(futureQueue.front());
|
||||
futureQueue.pop_front();
|
||||
if (futureQueue.empty()) {
|
||||
newData.reset();
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
HANDLE TSQueue::getNewDataEventHandle()
|
||||
{
|
||||
return newData.handle();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue