CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
thread_pool::detail Namespace Reference

Implementation details, should not be used outside of this header. More...

Functions

template<typename T>
TokenKey sealing_key_for_type ()
 Helper that generates a different sealing key per type using the allocator's token mechanism.
template<typename T>
__cheri_callback void wrap_callback_lambda (CHERI_SEALED(void *) rawFn)
 Helper that provides a callback function for invoking and then freeing a sealed heap-allocated lambda.
template<typename Fn>
__cheri_callback void wrap_callback_function (CHERI_SEALED(void *))
 Helper to wrap pure C function (including a stateless lambda) as a callback.

Detailed Description

Implementation details, should not be used outside of this header.

Function Documentation

◆ sealing_key_for_type()

template<typename T>
TokenKey thread_pool::detail::sealing_key_for_type ( )
inline

Helper that generates a different sealing key per type using the allocator's token mechanism.

Definition at line 86 of file thread_pool.h.

References token_key_new().

Referenced by thread_pool::async(), and wrap_callback_lambda().

◆ wrap_callback_function()

template<typename Fn>
__cheri_callback void thread_pool::detail::wrap_callback_function ( CHERI_SEALED(void *) )

Helper to wrap pure C function (including a stateless lambda) as a callback.

Definition at line 126 of file thread_pool.h.

Referenced by thread_pool::async().

◆ wrap_callback_lambda()

template<typename T>
__cheri_callback void thread_pool::detail::wrap_callback_lambda ( CHERI_SEALED(void *) rawFn)

Helper that provides a callback function for invoking and then freeing a sealed heap-allocated lambda.

The lambda is sealed with the software-defined sealing key constructed by the sealing_key_for_type helper.

Definition at line 99 of file thread_pool.h.

References sealing_key_for_type(), token_obj_destroy(), and token_unseal().

Referenced by thread_pool::async().