rpcsx/rpcs3/Emu/SysCalls/Callback.h
Nekotekina a974ee009e vm::var improved, cleanup
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00

30 lines
599 B
C++

#pragma once
class PPUThread;
class CallbackManager
{
using check_cb_t = std::function<s32(PPUThread&)>;
using async_cb_t = std::function<void(PPUThread&)>;
std::mutex m_mutex;
std::queue<check_cb_t> m_check_cb;
std::queue<async_cb_t> m_async_cb;
std::shared_ptr<PPUThread> m_cb_thread;
public:
// register checked callback (accepts CPUThread&, returns s32)
void Register(check_cb_t func);
// register async callback, called in callback thread (accepts CPUThread&)
void Async(async_cb_t func);
// get one registered callback
check_cb_t Check();
void Init();
void Clear();
};