Changeset 262:e209ffe450be

Show
Ignore:
Timestamp:
04/30/2010 09:50:24 AM (4 months ago)
Author:
dcaoyuan
Branch:
default
Message:

Structual type uses reflect method call, for performance issue, replace it with direct object

Location:
blogbird/src/main/scala/org/aiotrade/httpd
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • blogbird/src/main/scala/org/aiotrade/httpd/ClientConnection.scala

    r260 r262  
    3434  def act = loop { 
    3535    react { 
    36       case Read(selector) => 
     36      case Read(sender) => 
    3737        try { 
    3838          val hasRequest = readMoreInput 
    3939 
    4040          // add back this connection to the read selector. 
    41           selector.addListener(this) 
     41          sender.addListener(this) 
    4242 
    4343          // Was enough input read to complete a request? 
    4444          if (hasRequest) { 
    45             selector.asInstanceOf[{def produce(o: Request)}].produce(takeRequest) 
     45            ConnectionManager.selectActor.produce(takeRequest) 
    4646          } 
    4747        } catch {case ex: IOException => debugln(ex.getMessage)} 
    4848         
    49       case Write(selector) => 
     49      case Write(sender) => 
    5050        debugln(" ** Sending reply!") 
    5151        try { 
     
    5555          } else { 
    5656          // add back this connection to the write selector. 
    57             selector.addListener(this) 
     57            sender.addListener(this) 
    5858          } 
    5959        } catch {case ex: IOException => debugln(ex.getMessage)} 
  • blogbird/src/main/scala/org/aiotrade/httpd/HttpdActors.scala

    r261 r262  
    6565  } 
    6666 
    67   private object selectActor extends SelectActor[ClientConnection](SelectionKey.OP_READ) { 
     67  object selectActor extends SelectActor[ClientConnection](SelectionKey.OP_READ) { 
    6868    def produce(o: Request) = ConnectionManager.produce(o) 
    6969  }