Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LWKT message ports contain a number of function pointers which abstract
their backend operation. * Add a new function, mp_getport(), which takes over the functionality of lwkt_getport(). * Formalize the default backend and rename it the 'thread' port backend, used when a message port will only be drained by a single thread. This backend is able to use critical sections and IPI messages to handle races. * Fix a small timing window in the thread port backend where replying a synchronous message request from a different cpu may fail to wake up the originator who is waiting for the message completion. * Abstract-out the message port initialization code and clean up related code pollution. * Add a new backend called the 'spin' port backend. This backend can be used if a message port might be drained by several different threads. For example, this would allow us to use a message port as part of a file pointer / file descriptor construct. * Add a boot-time tunable, lwkt.use_spin_port (defaults to off) which forces spin ports to be used instead of thread ports for the per-thread message port. This is used only for debugging.
- Loading branch information