| 511 | } |
| 512 | |
| 513 | static void cli_activation_release_cleanup_lease(cli_activation_production_context_t *context, |
| 514 | cbm_version_cohort_lease_t **lease_io) { |
| 515 | uint64_t cleanup_deadline = cli_activation_deadline_after(CLI_ACTIVATION_CONTROL_TIMEOUT_MS); |
| 516 | while (lease_io && *lease_io && cbm_now_ms() < cleanup_deadline) { |
| 517 | if (cbm_version_cohort_lease_release(lease_io) == CBM_PRIVATE_FILE_LOCK_OK) { |
| 518 | return; |
| 519 | } |
| 520 | cbm_usleep(CLI_ACTIVATION_RETRY_US); |
| 521 | } |
| 522 | if (lease_io && *lease_io) { |
| 523 | context->cleanup_ok = false; |
| 524 | } |
| 525 | } |
| 526 | |
| 527 | static int cli_activation_production_reserve(void *opaque, cbm_cli_activation_lock_t *lease_out) { |
| 528 | cli_activation_production_context_t *context = opaque; |
no test coverage detected