Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Common / VirtThread.h
1 // VirtThread.h\r
2 \r
3 #ifndef __VIRTTHREAD_H\r
4 #define __VIRTTHREAD_H\r
5 \r
6 #include "../../Windows/Synchronization.h"\r
7 #include "../../Windows/Thread.h"\r
8 \r
9 struct CVirtThread\r
10 {\r
11   NWindows::NSynchronization::CAutoResetEvent StartEvent;\r
12   NWindows::NSynchronization::CAutoResetEvent FinishedEvent;\r
13   NWindows::CThread Thread;\r
14   bool ExitEvent;\r
15 \r
16   ~CVirtThread();\r
17   WRes Create();\r
18   void Start();\r
19   void WaitFinish() { FinishedEvent.Lock(); }\r
20   virtual void Execute() = 0;\r
21 };\r
22 \r
23 #endif\r