| 466 | } |
| 467 | |
| 468 | static void cli_activation_release_cleanup_lease(cli_activation_production_context_t *context, |
| 469 | cbm_version_cohort_lease_t **lease_io) { |
| 470 | uint64_t cleanup_deadline = cli_activation_deadline_after(CLI_ACTIVATION_CONTROL_TIMEOUT_MS); |
| 471 | while (lease_io && *lease_io && cbm_now_ms() < cleanup_deadline) { |
| 472 | if (cbm_version_cohort_lease_release(lease_io) == CBM_PRIVATE_FILE_LOCK_OK) { |
| 473 | return; |
| 474 | } |
| 475 | cbm_usleep(CLI_ACTIVATION_RETRY_US); |
| 476 | } |
| 477 | if (lease_io && *lease_io) { |
| 478 | context->cleanup_ok = false; |
| 479 | } |
| 480 | } |
| 481 | |
| 482 | static int cli_activation_production_reserve(void *opaque, cbm_cli_activation_lock_t *lease_out) { |
| 483 | cli_activation_production_context_t *context = opaque; |
no test coverage detected