mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
21 lines
No EOL
418 B
C++
21 lines
No EOL
418 B
C++
#include "rubydispatcher.h"
|
|
|
|
void RubyDispatcher::invoke(std::function<void()> fn){
|
|
std::lock_guard lock(mutex);
|
|
queue.push(std::move(fn));
|
|
}
|
|
|
|
void RubyDispatcher::process(){
|
|
std::queue<std::function<void()>> local;
|
|
|
|
{
|
|
std::lock_guard lock(mutex);
|
|
std::swap(local, queue);
|
|
}
|
|
|
|
while (!local.empty())
|
|
{
|
|
local.front()();
|
|
local.pop();
|
|
}
|
|
} |