feat update
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user