+ if ((do_write == 1) && (r->type == DST_TYPE_FILE) && (is_dup == 1))
+ {
+ do_write = 0;
+
+ if (r->dup_timer == NULL)
+ {
+ /* create a timer to flush dups on this file */
+ r->dup_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, bsd_out_queue);
+ dispatch_source_set_event_handler(r->dup_timer, ^{ _bsd_send_repeat_msg(r); });
+ }
+
+ if (r->last_count == 0)
+ {
+ /* start the timer */
+ dispatch_source_set_timer(r->dup_timer, dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * global.bsd_max_dup_time), DISPATCH_TIME_FOREVER, 0);
+ dispatch_resume(r->dup_timer);
+ }
+ }