}
event =
timer.addEvent(
now + idle_dispatch_time,
new TimerEventPerformer()
{
public void
perform(
TimerEvent event )
{
dispatch();
}
});
}finally{
timer_mon.exit();
}
if ( dispatch_now != null ){
dispatch( dispatch_now );
}
}
public Object
remove(
Object obj )
{
Object res = null;
try{
timer_mon.enter();
res = list.remove( obj )?obj:null;
if ( res != null ){
long now = SystemTime.getCurrentTime();
if ( event != null ){
event.cancel();
}
if ( list.size() == 0 ){
event = null;
}else{
event =
timer.addEvent(
now + idle_dispatch_time,
new TimerEventPerformer()
{
public void
perform(
TimerEvent event )
{