Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c98f54c
refactor: require immutable self reference for Limiter::grow
Sl1mb0 Feb 9, 2026
23d3040
feat: implement & test open_at
Sl1mb0 Feb 9, 2026
bc9b47a
refactor: create vfs_test! macro to reduce boilerplate in tests
Sl1mb0 Feb 10, 2026
c39e69a
refactor: return current or parent directory depending on Stay/Up pat…
Sl1mb0 Feb 11, 2026
58a5de5
fix: tests
Sl1mb0 Feb 11, 2026
1f00b30
refactor: use match to clarify code paths
Sl1mb0 Feb 12, 2026
f48c596
Merge branch 'main' into tm/open-at
Sl1mb0 Feb 13, 2026
c4faf2b
fix: test_copy
Sl1mb0 Feb 13, 2026
f0afb3c
refactor: remove boiler-plate macros in favor of a single type and #[…
Sl1mb0 Feb 15, 2026
cd33df2
Merge branch 'main' into tm/open-at
Sl1mb0 Feb 17, 2026
5f7772c
refactor: do not truncate if O_TRUNCATE is not set
Sl1mb0 Feb 17, 2026
ababb6c
refactor: return error if path to open is an empty string
Sl1mb0 Feb 17, 2026
35228e7
fix: snapshot assertions
Sl1mb0 Feb 17, 2026
d211efd
fix: return ErrorCode::IsDirectory if a directory is opened with Desc…
Sl1mb0 Feb 17, 2026
f055ee4
fix: test_copy
Sl1mb0 Feb 17, 2026
ce5918c
feat: add shrink() method to Limiter
Sl1mb0 Feb 18, 2026
4f3e854
refactor: return Result<Option<SharedVfsNode>> from get_VfsCtxView::g…
Sl1mb0 Feb 18, 2026
84fd9ca
fix: tests
Sl1mb0 Feb 18, 2026
1ef622b
fix: tests
Sl1mb0 Feb 19, 2026
efcb604
refactor: use map_err to make match statement more readable
Sl1mb0 Feb 20, 2026
d91f378
fix: get descriptor if it already exists; otherwise create it
Sl1mb0 Mar 5, 2026
e3306bf
fix: use rep ID of 1
Sl1mb0 Mar 6, 2026
6b8136d
Merge branch 'main' into tm/open-at
Sl1mb0 Mar 10, 2026
8cde8ed
fix: handle no resource found error
Sl1mb0 Mar 10, 2026
8bdddc1
fix: preserve get_directories implementation
Sl1mb0 Mar 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion host/src/component.rs
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ impl WasmComponentInstance {
let component = component.hydrate(&engine)?;

// resource/mem limiter
let mut limiter = Limiter::new(permissions.resource_limits.clone(), memory_pool);
let limiter = Limiter::new(permissions.resource_limits.clone(), memory_pool);

// Create in-memory VFS
let vfs_state = VfsState::new(permissions.vfs.clone(), limiter.clone());
Expand Down
14 changes: 13 additions & 1 deletion host/src/limiter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ impl Limiter {
}

/// Grow memory usage.
pub(crate) fn grow(&mut self, bytes: usize) -> Result<(), GrowthError> {
pub(crate) fn grow(&self, bytes: usize) -> Result<(), GrowthError> {
let mut self_guard = self
.memory_reservation
.lock()
Expand All @@ -88,6 +88,18 @@ impl Limiter {
})
}

/// Shrink memory usage.
pub(crate) fn shrink(&self, bytes: usize) -> Result<usize, GrowthError> {
let mut self_guard = self
.memory_reservation
.lock()
.expect("memory reservation lock poisoned");
self_guard.try_shrink(bytes).map_err(|e| {
log::debug!("failed to shrink memory: {e}");
GrowthError(e)
})
}

/// Get current allocation size.
pub(crate) fn size(&self) -> usize {
self.memory_reservation
Expand Down
Loading