rclock.cpp (888B)
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 /* 7 ** C++ access to NSPR locks (PRLock) 8 */ 9 10 #include "rclock.h" 11 #include <prlog.h> 12 13 RCLock::RCLock() 14 { 15 lock = PR_NewLock(); /* it might be NULL */ 16 PR_ASSERT(NULL != lock); 17 } /* RCLock::RCLock */ 18 19 RCLock::~RCLock() 20 { 21 if (NULL != lock) { 22 PR_DestroyLock(lock); 23 } 24 lock = NULL; 25 } /* RCLock::~RCLock */ 26 27 void RCLock::Acquire() 28 { 29 PR_ASSERT(NULL != lock); 30 PR_Lock(lock); 31 } /* RCLock::Acquire */ 32 33 void RCLock::Release() 34 { 35 PRStatus rv; 36 PR_ASSERT(NULL != lock); 37 rv = PR_Unlock(lock); 38 PR_ASSERT(PR_SUCCESS == rv); 39 } /* RCLock::Release */ 40 41 /* RCLock.cpp */