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 Workervoid _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 Workersimple_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 Workersimple_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