| 2392 | } |
| 2393 | |
| 2394 | static bool runtime_wait_for_count(cbm_daemon_runtime_service_t *service, size_t expected, |
| 2395 | uint32_t timeout_ms, bool connections) { |
| 2396 | if (!service) { |
| 2397 | return false; |
| 2398 | } |
| 2399 | uint64_t deadline = runtime_deadline_after(timeout_ms); |
| 2400 | for (;;) { |
| 2401 | size_t actual = connections ? cbm_daemon_runtime_service_active_connections(service) |
| 2402 | : cbm_daemon_runtime_service_active_clients(service); |
| 2403 | if (actual == expected) { |
| 2404 | return true; |
| 2405 | } |
| 2406 | if (cbm_now_ms() >= deadline) { |
| 2407 | return false; |
| 2408 | } |
| 2409 | runtime_wait_tick(deadline); |
| 2410 | } |
| 2411 | } |
| 2412 | |
| 2413 | bool cbm_daemon_runtime_service_wait_for_clients(cbm_daemon_runtime_service_t *service, |
| 2414 | size_t expected, uint32_t timeout_ms) { |
no test coverage detected