public void adjustAllBy( long offset ) { // fix up the timers synchronized (this) { // as we're adjusting all events by the same amount the ordering remains valid Iterator<TimerEvent> it = events.iterator(); boolean resort = false; while (it.hasNext()) { TimerEvent event = it.next(); long old_when = event.getWhen(); long new_when = old_when + offset; // don't wrap around by accident if ( old_when > 0 && new_when < 0 && offset > 0 ){ // Debug.out( "Ignoring wrap around for " + event.getName()); resort = true; }else{ // System.out.println( " adjusted: " + old_when + " -> " + new_when ); event.setWhen( new_when ); } } if ( resort ){ events = new TreeSet<>(new ArrayList<>(events)); } notify(); } }
@Override public int getPauseDownloadPeriodRemaining() { try{ paused_list_mon.enter(); if ( auto_resume_timer != null ){ long rem = auto_resume_timer.getWhen() - SystemTime.getCurrentTime(); return(Math.max( 0, (int)(rem/1000))); } }finally{ paused_list_mon.exit(); } return( 0 ); }
long old_when = event.getWhen(); long new_when = old_when + offset;
long old_when = event.getWhen();
public String getString() { if ( performer instanceof TimerEventPeriodic ){ TimerEventPeriodic tep = (TimerEventPeriodic)performer; return( "when=" + getWhen() + ",run=" + hasRun() + ", can=" + isCancelled() + "/" + tep.isCancelled() + ",freq=" + tep.getFrequency() + ",target=" + tep.getPerformer()+ (name==null?"":",name=" + name )); }else{ return( "when=" + getWhen() + ",run=" + hasRun() + ", can=" + isCancelled() + ",target=" + getPerformer() + (name==null?"":",name=" + name )); } } }
protected String getString() { TimerEvent ce = current_event; String ev_data; if ( ce == null ){ ev_data = "?"; }else{ ev_data = "when=" + ce.getWhen() + ",run=" + ce.hasRun() + ", can=" + ce.isCancelled(); } return( ev_data + ",freq=" + getFrequency() + ",target=" + getPerformer() + (name==null?"":(",name=" + name ))); } }
@Override public int getTimeUntilNextUpdate() { try{ this_mon.enter(); if ( current_timer_event == null ){ return( getErrorRetryInterval() ); } int rem = (int)((current_timer_event.getWhen() - SystemTime.getCurrentTime())/1000); return( rem ); }finally{ this_mon.exit(); } }
timerProcessDataSources.adjustAllBy( lNextTime - timerEventProcessDS.getWhen());
old_when = schedule_event.getWhen();
@Override public void destroy() { destroyed = true; try{ this_mon.enter(); if ( current_timer_event != null ){ // cancel any events that are a way off being triggered. note that // we don't want to cancel all events as the "stopped" event that // is scheduled on stop of a download may still be lurking if ( current_timer_event.getWhen() - SystemTime.getCurrentTime() > 10*1000 ){ if (Logger.isEnabled()) Logger.log(new LogEvent(torrent, LOGID, "Canceling announce trigger")); current_timer_event.cancel(); } } }finally{ this_mon.exit(); } }
long expiry = current_timer_event.getWhen();
current_timer_event.getWhen() < target_time ){