comparison src/org/eclipse/jetty/io/nio/SelectChannelEndPoint.java @ 960:3cd4c706a61f

simplify ChannelEndPoint
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 13 Oct 2016 21:29:19 -0600
parents 7b94f5b33c64
children 790c01734386
comparison
equal deleted inserted replaced
959:7b94f5b33c64 960:3cd4c706a61f
170 updateKey(); 170 updateKey();
171 } 171 }
172 } 172 }
173 } 173 }
174 174
175 /* ------------------------------------------------------------ */
176 /**
177 * Called when a dispatched thread is no longer handling the endpoint.
178 * The selection key operations are updated.
179 * @return If false is returned, the endpoint has been redispatched and
180 * thread must keep handling the endpoint.
181 */
182 private synchronized void undispatch()
183 {
184 _state = STATE_UNDISPATCHED;
185 updateKey();
186 }
187
188 @Override 175 @Override
189 public int fill(Buffer buffer) throws IOException 176 public int fill(Buffer buffer) throws IOException
190 { 177 {
191 int fill=super.fill(buffer); 178 int fill=super.fill(buffer);
192 return fill; 179 return fill;
430 } 417 }
431 } 418 }
432 419
433 private void handle() 420 private void handle()
434 { 421 {
435 boolean dispatched = true;
436 try 422 try
437 { 423 {
438 try 424 try
439 { 425 {
440 while(true) 426 while(true)
441 { 427 {
442 final AsyncConnection next = (AsyncConnection)_connection.handle(); 428 final AsyncConnection next = (AsyncConnection)_connection.handle();
443 if (next!=_connection) 429 if (next==_connection)
444 { 430 break;
445 LOG.debug("{} replaced {}",next,_connection); 431 LOG.debug("{} replaced {}",next,_connection);
446 _connection=next; 432 _connection=next;
447 continue;
448 }
449 break;
450 } 433 }
451 } 434 }
452 catch (ClosedChannelException e) 435 catch (ClosedChannelException e)
453 { 436 {
454 LOG.trace("",e); 437 LOG.trace("",e);
484 { 467 {
485 LOG.warn("onInputShutdown failed", x); 468 LOG.warn("onInputShutdown failed", x);
486 try{close();} 469 try{close();}
487 catch(IOException e2){LOG.trace("",e2);} 470 catch(IOException e2){LOG.trace("",e2);}
488 } 471 }
489 finally 472 }
490 {
491 updateKey();
492 }
493 }
494 undispatch();
495 dispatched = false;
496 } 473 }
497 } 474 }
498 finally 475 finally
499 { 476 {
500 if (dispatched) 477 _state = STATE_UNDISPATCHED;
501 { 478 updateKey();
502 undispatch();
503 }
504 } 479 }
505 } 480 }
506 481
507 /* ------------------------------------------------------------ */ 482 /* ------------------------------------------------------------ */
508 /* 483 /*