From 4562f6852f3157b9e9d2856a413c6b17da58896b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 7 Jun 2002 00:34:56 +0000 Subject: [PATCH] added wxCRITICAL_SECTION macro git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/thread.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/wx/thread.h b/include/wx/thread.h index 9917e594df..f4fec4683c 100644 --- a/include/wx/thread.h +++ b/include/wx/thread.h @@ -594,6 +594,27 @@ inline void WXDLLEXPORT wxMutexGuiLeave() { } #endif // wxUSE_THREADS/!wxUSE_THREADS +// mark part of code as being a critical section: this macro declares a +// critical section with the given name and enters it immediately and leaves +// it at the end of the current scope +// +// example: +// +// int Count() +// { +// static int s_counter = 0; +// +// wxCRITICAL_SECTION(counter); +// +// return ++s_counter; +// } +// +// this function is MT-safe in presence of the threads but there is no +// overhead when the library is compiled without threads +#define wxCRITICAL_SECTION(name) \ + wxCRIT_SECT_DECLARE(s_cs##name); \ + wxCRIT_SECT_LOCKER(cs##name##Locker, s_cs##name) + // automatically lock GUI mutex in ctor and unlock it in dtor class WXDLLEXPORT wxMutexGuiLocker { -- 2.45.2