protected long getEffectiveTime() { return( SystemTime.getSteppedMonotonousTime()); } }
private void update_avail_byte_count() { if ( frozen ){ return; } final long now =SystemTime.getSteppedMonotonousTime(); if (prev_update_time <now) { avail_bytes +=((now -prev_update_time) * rate) / 1000; prev_update_time =now; if( avail_bytes > burst_rate ) avail_bytes = burst_rate; else if( avail_bytes < 0 ) Debug.out("ERROR: avail_bytes < 0: " + avail_bytes); } }
/** * Create a new byte-bucket with the given byte fill (guaranteed) rate * and the given burst rate. * @param rate_bytes_per_sec fill rate * @param burst_rate max rate */ private ByteBucketST( int rate_bytes_per_sec, int burst_rate ) { this.rate = rate_bytes_per_sec; this.burst_rate = burst_rate; avail_bytes = 0; //start bucket empty prev_update_time = SystemTime.getSteppedMonotonousTime(); ensureByteBucketMinBurstRate(); }
@Override public long isReadyForRead( EventWaiter waiter ) { long now = SystemTime.getSteppedMonotonousTime(); if ( peer.isTransferAvailable()){ last_ready_for_read = now; return( 0 ); } long diff = now - last_ready_for_read + 1; // make sure > 0 return( diff ); }
/** * Is the transport ready to read, * i.e. will a read request result in >0 bytes read. * @return 0 if the transport is read ready, millis since last ready or -1 if never ready */ @Override public long isReadyForRead( EventWaiter waiter ) { if ( waiter != null ){ read_waiter = waiter; } boolean ready = is_ready_for_read || data_already_read != null || ( filter != null && filter.hasBufferedRead()); long now = SystemTime.getSteppedMonotonousTime(); if ( ready ){ last_ready_for_read = now; return( 0 ); } long diff = now - last_ready_for_read + 1; // make sure > 0 return( diff ); }
long now = SystemTime.getSteppedMonotonousTime();