Skip to content
This repository has been archived by the owner on May 29, 2018. It is now read-only.

Add support for a message queue for each application #19

Open
noxer opened this issue Apr 15, 2012 · 4 comments
Open

Add support for a message queue for each application #19

noxer opened this issue Apr 15, 2012 · 4 comments
Milestone

Comments

@noxer
Copy link
Member

noxer commented Apr 15, 2012

To enable inter-process-communication and notifications there should be a message queue for the applications.

-> each process has a buffer that any other proccess can write to, which is read by the buffer owning process

@rustyoz
Copy link
Contributor

rustyoz commented Apr 17, 2012

can you expand on this? i might have a crack at it.
do you mean:

  • each process has a buffer that any other proccess can write to, which is read by the buffer owning process
  • or a single buffer that every proccess can read and write from?

@noxer
Copy link
Member Author

noxer commented Jun 20, 2012

The first. Except the kernel writes to the buffers. A process can call msg_send_to to send a message to a specific process but has no direct access to the buffers of other processes.

@rustyoz
Copy link
Contributor

rustyoz commented Jun 20, 2012

there is already chessmaster's message routines, is that what you had in mind noxer? is seems like it is more the second model with the common buffer.

@noxer
Copy link
Member Author

noxer commented Jun 20, 2012

These routines are the first part of my implementation (chessmaster moved them into the file so its shown as his commit) but they are missing a possibility for sending a message to a specific process.
With msg_queue_reg you register a part of the memory as a message queue so the OS can deliver the messages. A global message queue would make it impossible to determine if a message has been read by all running processes. But I think we need to make the queue longer (eg. 32 or 64 words).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants