use crate::utils::InitOnce;
static LOCK: std::sync::RwLock<()> = std::sync::RwLock::new(());
pub fn lock_read() -> std::sync::RwLockReadGuard<'static, ()> {
LOCK.read().unwrap()
}
pub fn lock_write() -> std::sync::RwLockWriteGuard<'static, ()> {
LOCK.write().unwrap()
}
crate::gen_alt_global!(vfs_external_memory_manager);
#[link(wasm_import_module = "wasip1-vfs_single_memory")]
unsafe extern "C" {
fn __wasip1_vfs_memory_grow_alt(_: i32) -> i32;
}
#[unsafe(no_mangle)]
extern "C" fn __wasip1_vfs_memory_grow_locker(page_size: i32) -> i32 {
let _guard = LOCK.write().unwrap();
let pre_page_size = unsafe { __wasip1_vfs_memory_grow_alt(page_size) };
core::mem::drop(_guard);
pre_page_size
}