28 #ifndef BERSERK_THREAD_HPP
29 #define BERSERK_THREAD_HPP
39 #include <ttas_spin_mutex.hpp>
101 std::vector<Callable> mQueueBefore;
102 std::vector<Callable> mQueueUpdate;
103 std::vector<Callable> mQueueAfter;
106 std::vector<Callable> mExecuteBefore;
107 std::vector<Callable> mExecuteUpdate;
108 std::vector<Callable> mExecuteAfter;
111 std::thread::id mThreadId = std::this_thread::get_id();
113 mutable yamc::spin_ttas::mutex mMutex;
#define BRK_NS_END
Definition: Config.hpp:48
#define BRK_API
Definition: Config.hpp:32
Represents thread wrapper used to enqueue commands to execute.
Definition: Thread.hpp:54
BRK_API void Enqueue(Callable callable, Flag flag)
Definition: Thread.cpp:47
BRK_API ~Thread()
Definition: Thread.cpp:36
std::function< void()> Callable
Thread callback function type.
Definition: Thread.hpp:70
BRK_API bool OnThread() const
Definition: Thread.cpp:86
BRK_API void ExecuteUpdate()
Definition: Thread.cpp:74
BRK_API void Update()
Definition: Thread.cpp:60
BRK_API void ExecuteBefore()
Definition: Thread.cpp:68
BRK_API void EnqueueUpdate(Callable callable)
Definition: Thread.hpp:79
BRK_API void ExecuteAfter()
Definition: Thread.cpp:80
Flag
Flag to enqueue callback.
Definition: Thread.hpp:57
@ Update
Execute middle thread main update
@ After
Execute after thread main update
@ Before
Execute before thread main update
BRK_API void EnqueueAfter(Callable callable)
Definition: Thread.hpp:82
BRK_API void EnqueueBefore(Callable callable)
Definition: Thread.hpp:76
Definition: GLDevice.cpp:46