feat update

This commit is contained in:
tqcq
2024-03-22 17:44:43 +08:00
parent 7fbf260c43
commit d304f6da02
16 changed files with 330 additions and 109 deletions

View File

@@ -1,4 +1,5 @@
#include "sled/task_queue/task_queue_base.h"
#include "sled/synchronization/event.h"
namespace sled {
namespace {
@@ -11,12 +12,22 @@ TaskQueueBase::Current()
return current;
}
TaskQueueBase::CurrentTaskQueueSetter::CurrentTaskQueueSetter(TaskQueueBase *task_queue)
: previous_(current)
TaskQueueBase::CurrentTaskQueueSetter::CurrentTaskQueueSetter(TaskQueueBase *task_queue) : previous_(current)
{
current = task_queue;
}
TaskQueueBase::CurrentTaskQueueSetter::~CurrentTaskQueueSetter() { current = previous_; }
void
TaskQueueBase::BlockingCallImpl(std::function<void()> &&functor, const sled::Location &from)
{
Event done;
PostTask([functor, &done] {
functor();
done.Set();
});
done.Wait(Event::kForever);
}
}// namespace sled