pub struct PoolingInstanceAllocator { /* private fields */ }
Expand description
Implements the pooling instance allocator.
This allocator internally maintains pools of instances, memories, tables, and stacks.
Note: the resource pools are manually dropped so that the fault handler terminates correctly.
Implementations§
source§impl PoolingInstanceAllocator
impl PoolingInstanceAllocator
sourcepub fn new(
config: &PoolingInstanceAllocatorConfig,
tunables: &Tunables,
) -> Result<Self>
pub fn new( config: &PoolingInstanceAllocatorConfig, tunables: &Tunables, ) -> Result<Self>
Creates a new pooling instance allocator with the given strategy and limits.
Trait Implementations§
source§impl Debug for PoolingInstanceAllocator
impl Debug for PoolingInstanceAllocator
source§impl InstanceAllocator for PoolingInstanceAllocator
impl InstanceAllocator for PoolingInstanceAllocator
source§fn validate(&self, module: &Module, offsets: &VMOffsets<HostPtr>) -> Result<()>
fn validate(&self, module: &Module, offsets: &VMOffsets<HostPtr>) -> Result<()>
Validates that a module is supported by the allocator.
source§fn allocate_index(&self, req: &InstanceAllocationRequest<'_>) -> Result<usize>
fn allocate_index(&self, req: &InstanceAllocationRequest<'_>) -> Result<usize>
Optionally allocates an allocator-defined index for the
req
provided. Read moresource§fn deallocate_index(&self, index: usize)
fn deallocate_index(&self, index: usize)
Deallocates indices allocated by
allocate_index
.source§fn allocate_memories(
&self,
index: usize,
req: &mut InstanceAllocationRequest<'_>,
memories: &mut PrimaryMap<DefinedMemoryIndex, Memory>,
) -> Result<()>
fn allocate_memories( &self, index: usize, req: &mut InstanceAllocationRequest<'_>, memories: &mut PrimaryMap<DefinedMemoryIndex, Memory>, ) -> Result<()>
Attempts to allocate all defined linear memories for a module. Read more
source§fn deallocate_memories(
&self,
index: usize,
mems: &mut PrimaryMap<DefinedMemoryIndex, Memory>,
)
fn deallocate_memories( &self, index: usize, mems: &mut PrimaryMap<DefinedMemoryIndex, Memory>, )
Deallocates all memories provided, optionally reclaiming resources for
the pooling allocator for example.
source§fn allocate_tables(
&self,
index: usize,
req: &mut InstanceAllocationRequest<'_>,
tables: &mut PrimaryMap<DefinedTableIndex, Table>,
) -> Result<()>
fn allocate_tables( &self, index: usize, req: &mut InstanceAllocationRequest<'_>, tables: &mut PrimaryMap<DefinedTableIndex, Table>, ) -> Result<()>
Same as
allocate_memories
, but for tables.source§fn deallocate_tables(
&self,
index: usize,
tables: &mut PrimaryMap<DefinedTableIndex, Table>,
)
fn deallocate_tables( &self, index: usize, tables: &mut PrimaryMap<DefinedTableIndex, Table>, )
Same as
deallocate_memories
, but for tables.source§fn purge_module(&self, module: CompiledModuleId)
fn purge_module(&self, module: CompiledModuleId)
Purges all lingering resources related to
module
from within this
allocator. Read moresource§fn allocate(&self, req: InstanceAllocationRequest<'_>) -> Result<InstanceHandle>
fn allocate(&self, req: InstanceAllocationRequest<'_>) -> Result<InstanceHandle>
source§fn deallocate(&self, handle: &mut InstanceHandle)
fn deallocate(&self, handle: &mut InstanceHandle)
Deallocates the provided instance. Read more
Auto Trait Implementations§
impl !Freeze for PoolingInstanceAllocator
impl RefUnwindSafe for PoolingInstanceAllocator
impl Send for PoolingInstanceAllocator
impl Sync for PoolingInstanceAllocator
impl Unpin for PoolingInstanceAllocator
impl UnwindSafe for PoolingInstanceAllocator
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more