Best way for near-real-time communication between kernels and host in SPIR

I’m working now on a a “Shuttle kernel”, which exchanges Control and status information between host and worker kernels. The shuttle kernel should be launched every 100 ms or so and finish its work within a few milliseconds or less. Launching the shuttle kernel is based on a repetitive timer at the host side. Does anyone have a better idea or is this a sound approach? This approach allows all objectives in my original Question all at once.