diff options
Diffstat (limited to 'ext/fs/ops.rs')
-rw-r--r-- | ext/fs/ops.rs | 50 |
1 files changed, 46 insertions, 4 deletions
diff --git a/ext/fs/ops.rs b/ext/fs/ops.rs index 71edc7d11..8e715d825 100644 --- a/ext/fs/ops.rs +++ b/ext/fs/ops.rs @@ -1498,7 +1498,7 @@ pub async fn op_fs_file_stat_async( } #[op2(fast)] -pub fn op_fs_flock_sync( +pub fn op_fs_flock_sync_unstable( state: &mut OpState, #[smi] rid: ResourceId, exclusive: bool, @@ -1510,7 +1510,7 @@ pub fn op_fs_flock_sync( } #[op2(async)] -pub async fn op_fs_flock_async( +pub async fn op_fs_flock_async_unstable( state: Rc<RefCell<OpState>>, #[smi] rid: ResourceId, exclusive: bool, @@ -1522,7 +1522,7 @@ pub async fn op_fs_flock_async( } #[op2(fast)] -pub fn op_fs_funlock_sync( +pub fn op_fs_funlock_sync_unstable( state: &mut OpState, #[smi] rid: ResourceId, ) -> Result<(), AnyError> { @@ -1533,7 +1533,7 @@ pub fn op_fs_funlock_sync( } #[op2(async)] -pub async fn op_fs_funlock_async( +pub async fn op_fs_funlock_async_unstable( state: Rc<RefCell<OpState>>, #[smi] rid: ResourceId, ) -> Result<(), AnyError> { @@ -1544,6 +1544,48 @@ pub async fn op_fs_funlock_async( } #[op2(fast)] +pub fn op_fs_flock_sync( + state: &mut OpState, + #[smi] rid: ResourceId, + exclusive: bool, +) -> Result<(), AnyError> { + let file = FileResource::get_file(state, rid)?; + file.lock_sync(exclusive)?; + Ok(()) +} + +#[op2(async)] +pub async fn op_fs_flock_async( + state: Rc<RefCell<OpState>>, + #[smi] rid: ResourceId, + exclusive: bool, +) -> Result<(), AnyError> { + let file = FileResource::get_file(&state.borrow(), rid)?; + file.lock_async(exclusive).await?; + Ok(()) +} + +#[op2(fast)] +pub fn op_fs_funlock_sync( + state: &mut OpState, + #[smi] rid: ResourceId, +) -> Result<(), AnyError> { + let file = FileResource::get_file(state, rid)?; + file.unlock_sync()?; + Ok(()) +} + +#[op2(async)] +pub async fn op_fs_funlock_async( + state: Rc<RefCell<OpState>>, + #[smi] rid: ResourceId, +) -> Result<(), AnyError> { + let file = FileResource::get_file(&state.borrow(), rid)?; + file.unlock_async().await?; + Ok(()) +} + +#[op2(fast)] pub fn op_fs_ftruncate_sync( state: &mut OpState, #[smi] rid: ResourceId, |