engine/include/Utils/ThreadUtils.h

41 lines
660 B
C
Raw Normal View History

2013-02-03 13:11:16 +00:00
#ifndef THREAD_UTILS_H_INCLUDED
#define THREAD_UTILS_H_INCLUDED
#include "boost/signal.hpp"
#include "boost/thread.hpp"
namespace SE
{
2013-02-19 12:37:56 +00:00
#ifndef UTILS_ENGINE
2013-02-03 13:11:16 +00:00
struct TFuncToPerform
{
private:
public:
TFuncToPerform()
: LockerPtr(new boost::mutex)
{
}
bool Executed;
std::shared_ptr<boost::mutex> LockerPtr;
boost::function<void()> Func;
};
void AssertIfInMainThread();
2013-02-03 21:24:01 +00:00
void TryUpdateMainThreadId();
2013-02-03 13:11:16 +00:00
void PerformInMainThreadAsync(boost::function<void()> f);
template<typename RETURNTYPE>
RETURNTYPE PerformInMainThread(boost::function<RETURNTYPE()> f);
2013-02-19 12:37:56 +00:00
#endif
2013-02-03 13:11:16 +00:00
} //namespace SE
#endif