[kernel] Simplify mailbox code, and messages
A number of simplifications of mailboxes now that the interface is much simpler, and synchronous. * call and respond can now only transfer one handle at a time * mailbox objects got rid of the message queue, and just have wait_queues of blocked threads, and a reply_to map. * threads now have a message_data struct on them for use by mailboxes
This commit is contained in:
@@ -19,7 +19,7 @@ object mailbox : object {
|
||||
method call [cap:send] {
|
||||
param tag uint64 [inout]
|
||||
param subtag uint64 [inout]
|
||||
param handles ref object [inout list zero_ok]
|
||||
param give_handle ref object [inout handle]
|
||||
}
|
||||
|
||||
# Respond to a message sent using call, and wait for another
|
||||
@@ -29,9 +29,8 @@ object mailbox : object {
|
||||
method respond [cap:receive] {
|
||||
param tag uint64 [inout]
|
||||
param subtag uint64 [inout]
|
||||
param handles ref object [inout list zero_ok]
|
||||
param handles_in size
|
||||
param reply_tag uint16 [inout]
|
||||
param give_handle ref object [inout handle]
|
||||
param reply_tag uint64 [inout]
|
||||
param flags uint64
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user