leonid@252: // Critical Section Autorelease leonid@252: // Tochinski Leonid, Chatten Associates, Inc. 2007 leonid@252: #pragma once leonid@252: leonid@252: class AutoReleaseCS leonid@252: { leonid@252: public: leonid@252: AutoReleaseCS(CRITICAL_SECTION& cs) : m_cs(cs) leonid@252: { leonid@252: ::EnterCriticalSection(&m_cs); leonid@252: } leonid@252: ~AutoReleaseCS() leonid@252: { leonid@252: ::LeaveCriticalSection(&m_cs); leonid@252: } leonid@252: CRITICAL_SECTION& m_cs; leonid@252: };