| 189 | } |
| 190 | |
| 191 | void cbm_progress_sink_fini(void) { |
| 192 | progress_sink_mutex_ensure(); |
| 193 | cbm_mutex_lock(&s_sink_mutex); |
| 194 | cbm_log_set_sink(NULL); |
| 195 | if (atomic_load(&s_needs_newline) && s_out) { |
| 196 | (void)fprintf(s_out, "\n"); |
| 197 | (void)fflush(s_out); |
| 198 | } |
| 199 | s_out = NULL; |
| 200 | cbm_mutex_unlock(&s_sink_mutex); |
| 201 | } |
| 202 | |
| 203 | /* Phase label table: maps pass names to display labels. */ |
| 204 | typedef struct { |
no test coverage detected