xref: /aosp_15_r20/external/mesa3d/src/util/simple_mtx.c (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright 2022 Yonggang Luo
3*61046927SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker  *
5*61046927SAndroid Build Coastguard Worker  */
6*61046927SAndroid Build Coastguard Worker 
7*61046927SAndroid Build Coastguard Worker #include "simple_mtx.h"
8*61046927SAndroid Build Coastguard Worker 
9*61046927SAndroid Build Coastguard Worker #if !UTIL_FUTEX_SUPPORTED
10*61046927SAndroid Build Coastguard Worker 
_simple_mtx_plain_init_once(simple_mtx_t * mtx)11*61046927SAndroid Build Coastguard Worker void _simple_mtx_plain_init_once(simple_mtx_t *mtx)
12*61046927SAndroid Build Coastguard Worker {
13*61046927SAndroid Build Coastguard Worker    mtx_init(&mtx->mtx, mtx_plain);
14*61046927SAndroid Build Coastguard Worker }
15*61046927SAndroid Build Coastguard Worker 
16*61046927SAndroid Build Coastguard Worker void
simple_mtx_init(simple_mtx_t * mtx,ASSERTED int type)17*61046927SAndroid Build Coastguard Worker simple_mtx_init(simple_mtx_t *mtx, ASSERTED int type)
18*61046927SAndroid Build Coastguard Worker {
19*61046927SAndroid Build Coastguard Worker    const util_once_flag flag = UTIL_ONCE_FLAG_INIT;
20*61046927SAndroid Build Coastguard Worker    assert(type == mtx_plain);
21*61046927SAndroid Build Coastguard Worker    mtx->flag = flag;
22*61046927SAndroid Build Coastguard Worker    _simple_mtx_init_with_once(mtx);
23*61046927SAndroid Build Coastguard Worker }
24*61046927SAndroid Build Coastguard Worker 
25*61046927SAndroid Build Coastguard Worker void
simple_mtx_destroy(simple_mtx_t * mtx)26*61046927SAndroid Build Coastguard Worker simple_mtx_destroy(simple_mtx_t *mtx)
27*61046927SAndroid Build Coastguard Worker {
28*61046927SAndroid Build Coastguard Worker    if (mtx->flag.called) {
29*61046927SAndroid Build Coastguard Worker       mtx_destroy(&mtx->mtx);
30*61046927SAndroid Build Coastguard Worker    }
31*61046927SAndroid Build Coastguard Worker }
32*61046927SAndroid Build Coastguard Worker 
33*61046927SAndroid Build Coastguard Worker #endif /* !UTIL_FUTEX_SUPPORTED */
34