]> git.lyx.org Git - features.git/blobdiff - boost/boost/smart_ptr/detail/lwm_win32_cs.hpp
boost: add eol property
[features.git] / boost / boost / smart_ptr / detail / lwm_win32_cs.hpp
index f2cbb9a3b36ee43a7ba8b04e90dac6a64e307472..00477e49f8fec71ecc19e85c6e3646b7a3a049a9 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/lwm_win32_cs.hpp\r
-//\r
-//  Copyright (c) 2002, 2003 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#ifdef BOOST_USE_WINDOWS_H\r
-#  include <windows.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-#ifndef BOOST_USE_WINDOWS_H\r
-\r
-struct critical_section\r
-{\r
-    struct critical_section_debug * DebugInfo;\r
-    long LockCount;\r
-    long RecursionCount;\r
-    void * OwningThread;\r
-    void * LockSemaphore;\r
-#if defined(_WIN64)\r
-    unsigned __int64 SpinCount;\r
-#else\r
-    unsigned long SpinCount;\r
-#endif\r
-};\r
-\r
-extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);\r
-extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);\r
-extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);\r
-extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);\r
-\r
-#else\r
-\r
-typedef ::CRITICAL_SECTION critical_section;\r
-\r
-#endif // #ifndef BOOST_USE_WINDOWS_H\r
-\r
-class lightweight_mutex\r
-{\r
-private:\r
-\r
-    critical_section cs_;\r
-\r
-    lightweight_mutex(lightweight_mutex const &);\r
-    lightweight_mutex & operator=(lightweight_mutex const &);\r
-\r
-public:\r
-\r
-    lightweight_mutex()\r
-    {\r
-        InitializeCriticalSection(&cs_);\r
-    }\r
-\r
-    ~lightweight_mutex()\r
-    {\r
-        DeleteCriticalSection(&cs_);\r
-    }\r
-\r
-    class scoped_lock;\r
-    friend class scoped_lock;\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        lightweight_mutex & m_;\r
-\r
-        scoped_lock(scoped_lock const &);\r
-        scoped_lock & operator=(scoped_lock const &);\r
-\r
-    public:\r
-\r
-        explicit scoped_lock(lightweight_mutex & m): m_(m)\r
-        {\r
-            EnterCriticalSection(&m_.cs_);\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            LeaveCriticalSection(&m_.cs_);\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/lwm_win32_cs.hpp
+//
+//  Copyright (c) 2002, 2003 Peter Dimov
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifdef BOOST_USE_WINDOWS_H
+#  include <windows.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+#ifndef BOOST_USE_WINDOWS_H
+
+struct critical_section
+{
+    struct critical_section_debug * DebugInfo;
+    long LockCount;
+    long RecursionCount;
+    void * OwningThread;
+    void * LockSemaphore;
+#if defined(_WIN64)
+    unsigned __int64 SpinCount;
+#else
+    unsigned long SpinCount;
+#endif
+};
+
+extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);
+extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);
+extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);
+extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);
+
+#else
+
+typedef ::CRITICAL_SECTION critical_section;
+
+#endif // #ifndef BOOST_USE_WINDOWS_H
+
+class lightweight_mutex
+{
+private:
+
+    critical_section cs_;
+
+    lightweight_mutex(lightweight_mutex const &);
+    lightweight_mutex & operator=(lightweight_mutex const &);
+
+public:
+
+    lightweight_mutex()
+    {
+        InitializeCriticalSection(&cs_);
+    }
+
+    ~lightweight_mutex()
+    {
+        DeleteCriticalSection(&cs_);
+    }
+
+    class scoped_lock;
+    friend class scoped_lock;
+
+    class scoped_lock
+    {
+    private:
+
+        lightweight_mutex & m_;
+
+        scoped_lock(scoped_lock const &);
+        scoped_lock & operator=(scoped_lock const &);
+
+    public:
+
+        explicit scoped_lock(lightweight_mutex & m): m_(m)
+        {
+            EnterCriticalSection(&m_.cs_);
+        }
+
+        ~scoped_lock()
+        {
+            LeaveCriticalSection(&m_.cs_);
+        }
+    };
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED