Você não pode selecionar mais de 25 tópicos
Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
|
- #pragma once
-
- #include "task.h"
-
- namespace asyncpp
- {
-
- /* task::lock */
-
- task::lock::lock(task::handle_ptr_s p_handle)
- { local_storage().current = p_handle; }
-
- task::lock::~lock()
- { local_storage().current.reset(); }
-
- /* task*/
-
- task::task()
- : _handle()
- { }
-
- task::task(const handle_ptr_w& p_handle)
- : _handle(p_handle)
- { }
-
- void task::notify() const
- {
- auto s = _handle.lock();
- if (s)
- s->notify();
- }
-
- task task::current()
- { return task(local_storage().current); }
-
- task::storage& task::local_storage()
- {
- thread_local storage value;
- return value;
- }
-
- }
|