1 /* 2 ********************************************************************** 3 * Copyright (C) 2013, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************** 6 * 7 * File cmutex.h 8 * 9 * Minimal plain C declarations for ICU mutex functions. 10 * This header provides a transition path for plain C files that 11 * formerly included mutex.h, which is now a C++ only header. 12 * 13 * This header should not be used for new code. 14 * 15 * C++ files should include umutex.h, not this header. 16 * 17 */ 18 19 #ifndef __CMUTEX_H__ 20 #define __CMUTEX_H__ 21 22 typedef struct UMutex UMutex; 23 24 25 /* Lock a mutex. 26 * @param mutex The given mutex to be locked. Pass NULL to specify 27 * the global ICU mutex. Recursive locks are an error 28 * and may cause a deadlock on some platforms. 29 */ 30 U_INTERNAL void U_EXPORT2 umtx_lock(UMutex* mutex); 31 32 /* Unlock a mutex. 33 * @param mutex The given mutex to be unlocked. Pass NULL to specify 34 * the global ICU mutex. 35 */ 36 U_INTERNAL void U_EXPORT2 umtx_unlock (UMutex* mutex); 37 38 #endif 39 40