OSDN Git Service

use boost_1_56_0 and build by VS2013
[yamy/yamy.git] / multithread.h
index ffefe5d..038a325 100644 (file)
@@ -1,56 +1,72 @@
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// multithread.h
-
-
-#ifndef _MULTITHREAD_H
-#  define _MULTITHREAD_H
-
-#  include <windows.h>
-
-
-///
-class SyncObject
-{
-public:
-  ///
-  virtual void acquire() = 0;
-  ///
-  virtual void acquire(int ) { acquire(); }
-  ///
-  virtual void release() = 0;
-};
-
-
-///
-class CriticalSection : public SyncObject
-{
-  CRITICAL_SECTION m_cs;                       ///
-
-public:
-  ///
-  CriticalSection() { InitializeCriticalSection(&m_cs); }
-  ///
-  ~CriticalSection() { DeleteCriticalSection(&m_cs); }
-  ///
-  void acquire() { EnterCriticalSection(&m_cs); }
-  ///
-  void release() { LeaveCriticalSection(&m_cs); }
-};
-
-
-///
-class Acquire
-{
-  SyncObject *m_so;    ///
-  
-public:
-  ///
-  Acquire(SyncObject *i_so) : m_so(i_so) { m_so->acquire(); }
-  ///
-  Acquire(SyncObject *i_so, int i_n) : m_so(i_so) { m_so->acquire(i_n); }
-  ///
-  ~Acquire() { m_so->release(); }
-};
-
-
-#endif // !_MULTITHREAD_H
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+// multithread.h\r
+\r
+\r
+#ifndef _MULTITHREAD_H\r
+#  define _MULTITHREAD_H\r
+\r
+#  include <windows.h>\r
+\r
+\r
+///\r
+class SyncObject\r
+{\r
+public:\r
+       ///\r
+       virtual void acquire() = 0;\r
+       ///\r
+       virtual void acquire(int ) {\r
+               acquire();\r
+       }\r
+       ///\r
+       virtual void release() = 0;\r
+};\r
+\r
+\r
+///\r
+class CriticalSection : public SyncObject\r
+{\r
+       CRITICAL_SECTION m_cs;                  ///\r
+\r
+public:\r
+       ///\r
+       CriticalSection() {\r
+               InitializeCriticalSection(&m_cs);\r
+       }\r
+       ///\r
+       ~CriticalSection() {\r
+               DeleteCriticalSection(&m_cs);\r
+       }\r
+       ///\r
+       void acquire() {\r
+               EnterCriticalSection(&m_cs);\r
+       }\r
+       ///\r
+       void release() {\r
+               LeaveCriticalSection(&m_cs);\r
+       }\r
+};\r
+\r
+\r
+///\r
+class Acquire\r
+{\r
+       SyncObject *m_so;       ///\r
+\r
+public:\r
+       ///\r
+       Acquire(SyncObject *i_so) : m_so(i_so) {\r
+               m_so->acquire();\r
+       }\r
+       ///\r
+       Acquire(SyncObject *i_so, int i_n) : m_so(i_so) {\r
+               m_so->acquire(i_n);\r
+       }\r
+       ///\r
+       ~Acquire() {\r
+               m_so->release();\r
+       }\r
+};\r
+\r
+\r
+#endif // !_MULTITHREAD_H\r