23 Thread(
void (*func)(
void *),
void *args,
size_t stack_size,
24 osPriority_t priority, uint32_t attr_bits = 0) {
25 osThreadAttr_t attr{};
26 attr.stack_size = stack_size;
27 attr.priority = priority;
28 attr.attr_bits = attr_bits;
29 thread_id_ = ThreadId{osThreadNew(func, args, &attr)};
32 Thread(std::function<
void()> &&func,
size_t stack_size, osPriority_t priority,
33 uint32_t attr_bits = 0)
34 : func_{std::move(func)} {
35 osThreadAttr_t attr{};
36 attr.stack_size = stack_size;
37 attr.priority = priority;
38 attr.attr_bits = attr_bits;
39 thread_id_ = ThreadId{osThreadNew(
41 auto func =
reinterpret_cast<std::function<
void()
> *>(args);