Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
CriticalSectionMutex.h
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#ifndef _Stroika_Foundation_Execution_Platform_Windows_CriticalSectionMutex_h_
5#define _Stroika_Foundation_Execution_Platform_Windows_CriticalSectionMutex_h_ 1
6
7#include "Stroika/Foundation/StroikaPreComp.h"
8
9#if qStroika_Foundation_Common_Platform_Windows
10#include <Windows.h>
11#else
12#error "WINDOWS REQUIRED FOR THIS MODULE"
13#endif
14
15#include "Stroika/Foundation/Common/Common.h"
16
17/**
18 *
19 * \note Code-Status: <a href="Code-Status.md#Beta">Beta</a>
20 *
21 */
22
24
25 /**
26 * (reason is to test if perofrmance better than msvc mutex)
27 *
28 * Note - this is a recursive_mutex!
29 */
31 public:
34
35 public:
37
38 public:
39 nonvirtual CriticalSectionMutex& operator= (const CriticalSectionMutex&) = delete;
40
41 public:
42 nonvirtual void lock ();
43 nonvirtual void unlock ();
44
45 private:
46 CRITICAL_SECTION fCritSec_;
47 };
48
49}
50
51/*
52 ********************************************************************************
53 ***************************** Implementation Details ***************************
54 ********************************************************************************
55 */
56#include "CriticalSectionMutex.inl"
57
58#endif /*_Stroika_Foundation_Execution_Platform_Windows_CriticalSectionMutex_h_*/