📄 message.c
字号:
os_message* CreateMessage(void* message)
{
os_message* temp_message;
temp_message = (os_thread*)g_freemessages;
if (temp_message == NULL) return -1;
// pop a free thread from the list
g_freemessages = temp_message->next;
// push the free thread on the used threads list
temp_message->next = g_usedmessages;
g_usedmessages = temp_message;
temp_message->message = message;
return temp_message;
}
void FreeMessage(os_message* message)
{
// message should always equal g_usedmessage since its a queue
g_usedmessages = message->next;
message->next = g_freemessages;
g_freemessages = message;
}
void SendMessage(os_thread* thread, void* message)
{
os_message* temp_message;
if (thread != NULL)
{
if (thread->message == NULL)
{
thread->message = CreateMessage(message);
temp_message = thread->message;
}
else
{
temp_message = thread->message;
while (temp_message->next != NULL)
{
temp_message = temp_message->next;
}
temp_message->next = CreateMessage(message);
}
}
}
void* ReceiveMessage(os_thread* thread)
{
os_message* temp_message;
void* msgVal;
if (thread != NULL)
{
if (thread->message != NULL)
{
temp_message = thread->message;
msgVal = temp_message->message;
thread->message = temp_message->next;
FreeMessage(temp_message);
return msgVal;
}
}
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -