Index: mozilla/nsprpub/pr/include/prolock.h |
=================================================================== |
--- mozilla/nsprpub/pr/include/prolock.h (revision 191424) |
+++ mozilla/nsprpub/pr/include/prolock.h (working copy) |
@@ -1,178 +0,0 @@ |
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
-/* This Source Code Form is subject to the terms of the Mozilla Public |
- * License, v. 2.0. If a copy of the MPL was not distributed with this |
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
- |
-#ifndef prolock_h___ |
-#define prolock_h___ |
- |
-#include "prtypes.h" |
- |
-PR_BEGIN_EXTERN_C |
- |
-/* |
-** A locking mechanism, built on the existing PRLock definiion, |
-** is provided that will permit applications to define a Lock |
-** Hierarchy (or Lock Ordering) schema. An application designed |
-** using the Ordered Lock functions will terminate with a |
-** diagnostic message when a lock inversion condition is |
-** detected. |
-** |
-** The lock ordering detection is complile-time enabled only. in |
-** optimized builds of NSPR, the Ordered Lock functions map |
-** directly to PRLock functions, providing no lock order |
-** detection. |
-** |
-** The Ordered Lock Facility is compiled in when DEBUG is defined at |
-** compile time. Ordered Lock can be forced on in optimized builds by |
-** defining FORCE_NSPR_ORDERED_LOCK at compile time. Both the |
-** application using Ordered Lock and NSPR must be compiled with the |
-** facility enabled to achieve the desired results. |
-** |
-** Application designers should use the macro interfaces to the Ordered |
-** Lock facility to ensure that it is compiled out in optimized builds. |
-** |
-** Application designers are responsible for defining their own |
-** lock hierarchy. |
-** |
-** Ordered Lock is thread-safe and SMP safe. |
-** |
-** See Also: prlock.h |
-** |
-** /lth. 10-Jun-1998. |
-** |
-*/ |
- |
-/* |
-** Opaque type for ordered lock. |
-** ... Don't even think of looking in here. |
-** |
-*/ |
- |
-#if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS) |
-typedef void * PROrderedLock; |
-#else |
-/* |
-** Map PROrderedLock and methods onto PRLock when ordered locking |
-** is not compiled in. |
-** |
-*/ |
-#include "prlock.h" |
- |
-typedef PRLock PROrderedLock; |
-#endif |
- |
-/* ----------------------------------------------------------------------- |
-** FUNCTION: PR_CreateOrderedLock() -- Create an Ordered Lock |
-** |
-** DESCRIPTION: PR_CreateOrderedLock() creates an ordered lock. |
-** |
-** INPUTS: |
-** order: user defined order of this lock. |
-** name: name of the lock. For debugging purposes. |
-** |
-** OUTPUTS: returned |
-** |
-** RETURNS: PR_OrderedLock pointer |
-** |
-** RESTRICTIONS: |
-** |
-*/ |
-#if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS) |
-#define PR_CREATE_ORDERED_LOCK(order,name)\ |
- PR_CreateOrderedLock((order),(name)) |
-#else |
-#define PR_CREATE_ORDERED_LOCK(order) PR_NewLock() |
-#endif |
- |
-NSPR_API(PROrderedLock *) |
- PR_CreateOrderedLock( |
- PRInt32 order, |
- const char *name |
-); |
- |
-/* ----------------------------------------------------------------------- |
-** FUNCTION: PR_DestroyOrderedLock() -- Destroy an Ordered Lock |
-** |
-** DESCRIPTION: PR_DestroyOrderedLock() destroys the ordered lock |
-** referenced by lock. |
-** |
-** INPUTS: lock: pointer to a PROrderedLock |
-** |
-** OUTPUTS: the lock is destroyed |
-** |
-** RETURNS: void |
-** |
-** RESTRICTIONS: |
-** |
-*/ |
-#if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS) |
-#define PR_DESTROY_ORDERED_LOCK(lock) PR_DestroyOrderedLock((lock)) |
-#else |
-#define PR_DESTROY_ORDERED_LOCK(lock) PR_DestroyLock((lock)) |
-#endif |
- |
-NSPR_API(void) |
- PR_DestroyOrderedLock( |
- PROrderedLock *lock |
-); |
- |
-/* ----------------------------------------------------------------------- |
-** FUNCTION: PR_LockOrderedLock() -- Lock an ordered lock |
-** |
-** DESCRIPTION: PR_LockOrderedLock() locks the ordered lock |
-** referenced by lock. If the order of lock is less than or equal |
-** to the order of the highest lock held by the locking thread, |
-** the function asserts. |
-** |
-** INPUTS: lock: a pointer to a PROrderedLock |
-** |
-** OUTPUTS: The lock is held or the function asserts. |
-** |
-** RETURNS: void |
-** |
-** RESTRICTIONS: |
-** |
-*/ |
-#if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS) |
-#define PR_LOCK_ORDERED_LOCK(lock) PR_LockOrderedLock((lock)) |
-#else |
-#define PR_LOCK_ORDERED_LOCK(lock) PR_Lock((lock)) |
-#endif |
- |
-NSPR_API(void) |
- PR_LockOrderedLock( |
- PROrderedLock *lock |
-); |
- |
-/* ----------------------------------------------------------------------- |
-** FUNCTION: PR_UnlockOrderedLock() -- unlock and Ordered Lock |
-** |
-** DESCRIPTION: PR_UnlockOrderedLock() unlocks the lock referenced |
-** by lock. |
-** |
-** INPUTS: lock: a pointer to a PROrderedLock |
-** |
-** OUTPUTS: the lock is unlocked |
-** |
-** RETURNS: |
-** PR_SUCCESS |
-** PR_FAILURE |
-** |
-** RESTRICTIONS: |
-** |
-*/ |
-#if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS) |
-#define PR_UNLOCK_ORDERED_LOCK(lock) PR_UnlockOrderedLock((lock)) |
-#else |
-#define PR_UNLOCK_ORDERED_LOCK(lock) PR_Unlock((lock)) |
-#endif |
- |
-NSPR_API(PRStatus) |
- PR_UnlockOrderedLock( |
- PROrderedLock *lock |
-); |
- |
-PR_END_EXTERN_C |
- |
-#endif /* prolock_h___ */ |