In the example code, OCPP is running inside a while loop, and incoming WebSocket data is received via a callback triggered in an interrupt context and will be process.
Have you handled race conditions in your implementation, or have you architected the SDK in a way that inherently avoids them?