| 1028 | } |
| 1029 | |
| 1030 | static bool application_job_wait_for_mutations(cbm_daemon_application_job_t *job) { |
| 1031 | cbm_daemon_application_t *application = job->application; |
| 1032 | for (;;) { |
| 1033 | cbm_mutex_lock(&application->mutex); |
| 1034 | bool cancelled = job->cancel_requested || application->stopping; |
| 1035 | bool busy = application_mutation_conflicts_locked(application, job->project_key); |
| 1036 | cbm_mutex_unlock(&application->mutex); |
| 1037 | if (cancelled) { |
| 1038 | return false; |
| 1039 | } |
| 1040 | if (!busy) { |
| 1041 | return true; |
| 1042 | } |
| 1043 | cbm_usleep(APPLICATION_JOB_POLL_US); |
| 1044 | } |
| 1045 | } |
| 1046 | |
| 1047 | static void application_cancelled_result(cbm_index_worker_result_t *result) { |
| 1048 | memset(result, 0, sizeof(*result)); |
no test coverage detected