+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
*
-* Copyright (C) 1997-2001, International Business Machines
+* Copyright (C) 1997-2013, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
U_NAMESPACE_BEGIN
//----------------------------------------------------------------------------
-// Code within this library which accesses protected data
+// Code within that accesses shared static or global data should
// should instantiate a Mutex object while doing so. You should make your own
// private mutex where possible.
// For example:
//
-// UMTX myMutex;
+// UMutex myMutex;
//
-// int InitializeMyMutex()
-// {
-// umtx_init( &myMutex );
-// return 0;
-// }
-//
-// static int initializeMyMutex = InitializeMyMutex();
-//
// void Function(int arg1, int arg2)
// {
-// static Object* foo; // Shared read-write object
+// static Object* foo; // Shared read-write object
// Mutex mutex(&myMutex); // or no args for the global lock
// foo->Method();
// // When 'mutex' goes out of scope and gets destroyed here, the lock is released
class U_COMMON_API Mutex : public UMemory {
public:
- inline Mutex(UMTX *mutex = NULL);
+ inline Mutex(UMutex *mutex = NULL);
inline ~Mutex();
private:
- UMTX *fMutex;
+ UMutex *fMutex;
Mutex(const Mutex &other); // forbid copying of this class
Mutex &operator=(const Mutex &other); // forbid copying of this class
};
-inline Mutex::Mutex(UMTX *mutex)
+inline Mutex::Mutex(UMutex *mutex)
: fMutex(mutex)
{
umtx_lock(fMutex);