|
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) PR_DestroyLock(lock); |
|
22 lock = NULL; |
|
23 } /* RCLock::~RCLock */ |
|
24 |
|
25 void RCLock::Acquire() |
|
26 { |
|
27 PR_ASSERT(NULL != lock); |
|
28 PR_Lock(lock); |
|
29 } /* RCLock::Acquire */ |
|
30 |
|
31 void RCLock::Release() |
|
32 { |
|
33 PRStatus rv; |
|
34 PR_ASSERT(NULL != lock); |
|
35 rv = PR_Unlock(lock); |
|
36 PR_ASSERT(PR_SUCCESS == rv); |
|
37 } /* RCLock::Release */ |
|
38 |
|
39 /* RCLock.cpp */ |
|
40 |