#include <threads.h>
#include <threads_int.h>
#include <errno.h>
+#include <events.h>
// === CODE ===
/**
LEAVE_RET('i', -1);
}
+ // TODO: Check message length against global/per-thread maximums
+ // TODO: Restrict queue length
+
// Get thread
thread = Threads_GetThread( Dest );
}
SHORTREL(&thread->IsLocked);
-
+
+ // Wake the thread
LOG("Waking %p (%i %s)", thread, thread->TID, thread->ThreadName);
- Threads_Wake( thread );
+ Threads_PostEvent( thread, THREAD_EVENT_IPCMSG );
LEAVE_RET('i', 0);
}
* \param Err Pointer to \a errno
* \param Source Where to put the source TID
* \param Buffer Buffer to place the message data (set to NULL to just get message length)
+ * \return Message length
*/
int Proc_GetMessage(Uint *Err, Uint *Source, void *Buffer)
{