/* * Copyright 2022 Yonggang Luo * SPDX-License-Identifier: MIT * */ #include "simple_mtx.h" #if !UTIL_FUTEX_SUPPORTED void _simple_mtx_plain_init_once(simple_mtx_t *mtx) { mtx_init(&mtx->mtx, mtx_plain); } void simple_mtx_init(simple_mtx_t *mtx, ASSERTED int type) { const util_once_flag flag = UTIL_ONCE_FLAG_INIT; assert(type == mtx_plain); mtx->flag = flag; _simple_mtx_init_with_once(mtx); } void simple_mtx_destroy(simple_mtx_t *mtx) { if (mtx->flag.called) { mtx_destroy(&mtx->mtx); } } #endif /* !UTIL_FUTEX_SUPPORTED */