v0.2.0
Enhancements
HermesEventBus of the earlier versions synchronizes on the IMainService
instance every time the action or calculation is performed, even after the service has been connected. This is meant to eliminate the write-after-write hazard and the read-after-write hazard, but makes the IPC slower.
This version improves the performance of the IPC to make it faster from the following aspects:
- When the service is being connected, move the incoming actions and calculations into a queue.
- After the service has been connected, perform the pending actions and calculations in the queue.
- Before the pending actions and calculations has been performed, any incoming action or calculation will also be added into the queue to eliminate the write-after-write hazard and the read-after-write hazard.
- After the pending actions and calculations has been performed, the subsequent actions and calculations will be performed immediately without synchronization.