summaryrefslogtreecommitdiff
path: root/Source/modules/asura-core/Threads/ThreadEx.h
blob: ec597c5aae66a0ea15bc802daa70277590606233 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef _ASURA_THREAD_EX_H_
#define _ASURA_THREAD_EX_H_

#include <asura-base/Scripting/Scripting.h>
#include <asura-base/Threads/Thread.h>

namespace_begin(AsuraEngine)
namespace_begin(Threads)

///
/// ThreadEx�е��������������ͬ�������ͨ���˶���ͨ���ݡ�
///
class ThreadEx ASURA_FINAL
	: public AEScripting::Portable<ThreadEx>
	, public Threadable
{
public:

	LUAX_DECL_FACTORY(ThreadEx);

	ThreadEx();
	~ThreadEx();

	int Process() override;

private:
	
	// �����̵߳������ע��Asura����ͽӿڣ�ע��ֻ��һ���ֶ�������������֮�䴫�ݡ���������Щ�������͵Ķ���
	void RegisterModules();

	ThreadImpl* m_Impl;

	// �̴߳������������
	Luax::LuaxVM* m_VM;

luaxport:

	LUAX_DECL_METHOD(_New);

};

namespace_end
namespace_end

#endif