static void makeflow_gc_all( struct dag *d, struct batch_queue *queue, int maxfiles ) { int collected = 0; struct dag_file *f; char *name; timestamp_t start_time, stop_time; /* This will walk the table of files to collect and will remove any * that are below or equal to the threshold. */ start_time = timestamp_get(); hash_table_firstkey(d->files); while(hash_table_nextkey(d->files, &name, (void **) &f) && collected < maxfiles) { if(f->state == DAG_FILE_STATE_COMPLETE && !dag_file_is_source(f) && !set_lookup(d->outputs, f) && !set_lookup(d->inputs, f) && makeflow_file_clean(d, queue, f, 0)){ collected++; } } stop_time = timestamp_get(); /* Record total amount of files collected to Makeflowlog. */ if(collected > 0) { makeflow_gc_collected += collected; makeflow_log_gc_event(d,collected,stop_time-start_time,makeflow_gc_collected); } }
static void makeflow_gc_all( struct dag *d, int maxfiles ) { int collected = 0; struct dag_file *f; timestamp_t start_time, stop_time; /* This will walk the table of files to collect and will remove any * that are below or equal to the threshold. */ start_time = timestamp_get(); set_first_element(d->collect_table); while((f = set_next_element(d->collect_table)) && collected < maxfiles) { if(f->ref_count < 1 && makeflow_gc_file(d, f)) collected++; } stop_time = timestamp_get(); /* Record total amount of files collected to Makeflowlog. */ if(collected > 0) { makeflow_gc_collected += collected; makeflow_log_gc_event(d,collected,stop_time-start_time,makeflow_gc_collected); } }