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
22typedef 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 */
30U_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 */
36U_INTERNAL void U_EXPORT2 umtx_unlock (UMutex* mutex);
37
38#endif
39
40