TIMESTAMP link_syncall(TIMESTAMP t0) { TIMESTAMP t1 = TS_NEVER; glxlink *mod; for ( mod=glxlink::get_first() ; mod!=NULL ; mod=mod->get_next() ) { TIMESTAMP t2 = mod->do_sync(t0); if ( absolute_timestamp(t2)<absolute_timestamp(t1) ) t1 = t2; } return t1; }
/** Determine which timestamp reflects the earliest time **/ TIMESTAMP earliest_timestamp(TIMESTAMP t, ...) { TIMESTAMP t1 = t, t2; TIMESTAMP at1 = absolute_timestamp(t1), at2; va_list ptr; va_start(ptr,t); while ( (t2=va_arg(ptr,TIMESTAMP)) != 0 ) { at2 = absolute_timestamp(t2); if ( at2<at1 ) { t1 = t2; at1 = at2; } }; va_end(ptr); return t1; }