SimpleKernel 1.17.0
Loading...
Searching...
No Matches
lifecycle_messages.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include <etl/message.h>
8
9#include <cstddef>
10
12inline constexpr etl::message_id_t kThreadCreate = 100;
13inline constexpr etl::message_id_t kThreadExit = 101;
14} // namespace lifecycle_msg_id
15
19struct ThreadCreateMsg : public etl::message<lifecycle_msg_id::kThreadCreate> {
21 size_t pid{0};
22
25 explicit ThreadCreateMsg(size_t _pid) : pid(_pid) {}
26 ThreadCreateMsg() = default;
29 auto operator=(const ThreadCreateMsg&) -> ThreadCreateMsg& = default;
31 ~ThreadCreateMsg() = default;
33};
34
38struct ThreadExitMsg : public etl::message<lifecycle_msg_id::kThreadExit> {
40 size_t pid{0};
42 int exit_code{0};
43
46 ThreadExitMsg(size_t _pid, int _exit_code)
47 : pid(_pid), exit_code(_exit_code) {}
48 ThreadExitMsg() = default;
49 ThreadExitMsg(const ThreadExitMsg&) = default;
51 auto operator=(const ThreadExitMsg&) -> ThreadExitMsg& = default;
52 auto operator=(ThreadExitMsg&&) -> ThreadExitMsg& = default;
53 ~ThreadExitMsg() = default;
55};
constexpr etl::message_id_t kThreadExit
constexpr etl::message_id_t kThreadCreate
线程创建消息
ThreadCreateMsg(size_t _pid)
ThreadCreateMsg()=default
ThreadCreateMsg(ThreadCreateMsg &&)=default
auto operator=(const ThreadCreateMsg &) -> ThreadCreateMsg &=default
auto operator=(ThreadCreateMsg &&) -> ThreadCreateMsg &=default
~ThreadCreateMsg()=default
ThreadCreateMsg(const ThreadCreateMsg &)=default
size_t pid
进程 ID
线程退出消息
auto operator=(ThreadExitMsg &&) -> ThreadExitMsg &=default
ThreadExitMsg()=default
ThreadExitMsg(ThreadExitMsg &&)=default
~ThreadExitMsg()=default
int exit_code
退出码
auto operator=(const ThreadExitMsg &) -> ThreadExitMsg &=default
ThreadExitMsg(size_t _pid, int _exit_code)
size_t pid
进程 ID
ThreadExitMsg(const ThreadExitMsg &)=default