michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: /* michael@0: ** C++ access to NSPR locks (PRLock) michael@0: */ michael@0: michael@0: #include "rclock.h" michael@0: #include michael@0: michael@0: RCLock::RCLock() michael@0: { michael@0: lock = PR_NewLock(); /* it might be NULL */ michael@0: PR_ASSERT(NULL != lock); michael@0: } /* RCLock::RCLock */ michael@0: michael@0: RCLock::~RCLock() michael@0: { michael@0: if (NULL != lock) PR_DestroyLock(lock); michael@0: lock = NULL; michael@0: } /* RCLock::~RCLock */ michael@0: michael@0: void RCLock::Acquire() michael@0: { michael@0: PR_ASSERT(NULL != lock); michael@0: PR_Lock(lock); michael@0: } /* RCLock::Acquire */ michael@0: michael@0: void RCLock::Release() michael@0: { michael@0: PRStatus rv; michael@0: PR_ASSERT(NULL != lock); michael@0: rv = PR_Unlock(lock); michael@0: PR_ASSERT(PR_SUCCESS == rv); michael@0: } /* RCLock::Release */ michael@0: michael@0: /* RCLock.cpp */ michael@0: