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. Read more
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