FlorenceOS/Florence

kepler: Make IPC multithreaded server ready

notYuriy opened this issue · 1 comments

As of now, the request-response loop is strictly thread-local: thread that has initiated an operation is the only thread that can get notified about it. The proposal is as follows:

  • Make notification queues standalone objects. All system calls that assumed a notification queue would now accept a handle to a notification queue
  • Make a shareable notification queue that will be based on MPMC atomic unbounded queue (there are a few out there).
  • For passing objects, the same mailbox interface could be used, except there should be a way that each channel is accessed atomarically. Userspace would be responsible for allocation of channels in the mailbox.

With #79, old kepler code is deleted. New kepler IPC code will be written with multi-threading support in mind