PresentMon
PresentMon copied to clipboard
Service Installer Cooperative Drain Upgrade w/o Reboot
System for enabling upgrades of shared service without rebooting.
- Service publishes client activity state via service state system
- Service exposes drain command via custom control code
- Installer issues drain command
- Service requests connected clients to drain via subscribed event channel
- Service creates and gives clients a handle to event notifying when to reconnect
- After all clients disconnect or timeout, service forcefully close remaining sessions and set drained status
- Installer polls and detects drained status, stops service replaces and starts it again
- Service, after initializing, opens existing event object and signals reconnect availability
- Clients reconnect