Mercurial Hosting > luan
comparison src/org/eclipse/jetty/io/nio/SelectChannelEndPoint.java @ 949:e9088af3787f
remove SelectSet._changes
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Tue, 11 Oct 2016 23:18:13 -0600 | 
| parents | f5aefdc4a81a | 
| children | a778413aefc0 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 948:f5aefdc4a81a | 949:e9088af3787f | 
|---|---|
| 499 changed=_interestOps!=current_ops; | 499 changed=_interestOps!=current_ops; | 
| 500 } | 500 } | 
| 501 | 501 | 
| 502 if(changed) | 502 if(changed) | 
| 503 { | 503 { | 
| 504 _selectSet.addChange(this); | 504 doUpdateKey(); | 
| 505 _selectSet.wakeup(); | 505 _selectSet.wakeup(); | 
| 506 } | 506 } | 
| 507 } | 507 } | 
| 508 | 508 | 
| 509 | 509 | 
| 510 /* ------------------------------------------------------------ */ | 510 /* ------------------------------------------------------------ */ | 
| 511 /** | 511 /** | 
| 512 * Synchronize the interestOps with the actual key. Call is scheduled by a call to updateKey | 512 * Synchronize the interestOps with the actual key. Call is scheduled by a call to updateKey | 
| 513 */ | 513 */ | 
| 514 void doUpdateKey() | 514 synchronized void doUpdateKey() | 
| 515 { | 515 { | 
| 516 synchronized (this) | 516 if (getChannel().isOpen()) | 
| 517 { | 517 { | 
| 518 if (getChannel().isOpen()) | 518 if (_interestOps>0) | 
| 519 { | 519 { | 
| 520 if (_interestOps>0) | 520 if (_key==null || !_key.isValid()) | 
| 521 { | 521 { | 
| 522 if (_key==null || !_key.isValid()) | 522 SelectableChannel sc = (SelectableChannel)getChannel(); | 
| 523 { | 523 if (sc.isRegistered()) | 
| 524 SelectableChannel sc = (SelectableChannel)getChannel(); | 524 { | 
| 525 if (sc.isRegistered()) | 525 updateKey(); | 
| 526 } | |
| 527 else | |
| 528 { | |
| 529 try | |
| 526 { | 530 { | 
| 527 updateKey(); | 531 _key=((SelectableChannel)getChannel()).register(_selectSet.getSelector(),_interestOps,this); | 
| 528 } | 532 } | 
| 529 else | 533 catch (Exception e) | 
| 530 { | 534 { | 
| 531 try | 535 LOG.trace("",e); | 
| 536 if (_key!=null && _key.isValid()) | |
| 532 { | 537 { | 
| 533 _key=((SelectableChannel)getChannel()).register(_selectSet.getSelector(),_interestOps,this); | 538 _key.cancel(); | 
| 534 } | 539 } | 
| 535 catch (Exception e) | 540 | 
| 541 if (_open) | |
| 536 { | 542 { | 
| 537 LOG.trace("",e); | 543 _selectSet.destroyEndPoint(this); | 
| 538 if (_key!=null && _key.isValid()) | |
| 539 { | |
| 540 _key.cancel(); | |
| 541 } | |
| 542 | |
| 543 if (_open) | |
| 544 { | |
| 545 _selectSet.destroyEndPoint(this); | |
| 546 } | |
| 547 _open=false; | |
| 548 _key = null; | |
| 549 } | 544 } | 
| 545 _open=false; | |
| 546 _key = null; | |
| 550 } | 547 } | 
| 551 } | 548 } | 
| 552 else | |
| 553 { | |
| 554 _key.interestOps(_interestOps); | |
| 555 } | |
| 556 } | 549 } | 
| 557 else | 550 else | 
| 558 { | 551 { | 
| 559 if (_key!=null && _key.isValid()) | 552 _key.interestOps(_interestOps); | 
| 560 _key.interestOps(0); | |
| 561 else | |
| 562 _key=null; | |
| 563 } | 553 } | 
| 564 } | 554 } | 
| 565 else | 555 else | 
| 566 { | 556 { | 
| 567 if (_key!=null && _key.isValid()) | 557 if (_key!=null && _key.isValid()) | 
| 568 _key.cancel(); | 558 _key.interestOps(0); | 
| 569 | 559 else | 
| 570 if (_open) | 560 _key=null; | 
| 571 { | 561 } | 
| 572 _open=false; | 562 } | 
| 573 _selectSet.destroyEndPoint(this); | 563 else | 
| 574 } | 564 { | 
| 575 _key = null; | 565 if (_key!=null && _key.isValid()) | 
| 576 } | 566 _key.cancel(); | 
| 567 | |
| 568 if (_open) | |
| 569 { | |
| 570 _open=false; | |
| 571 _selectSet.destroyEndPoint(this); | |
| 572 } | |
| 573 _key = null; | |
| 577 } | 574 } | 
| 578 } | 575 } | 
| 579 | 576 | 
| 580 /* ------------------------------------------------------------ */ | 577 /* ------------------------------------------------------------ */ | 
| 581 /* | 578 /* | 
