Mercurial > projects > dreactor
comparison dreactor/core/Vat.d @ 9:5412a1ff2e49
adding chat client and more updates
author | rick@minifunk |
---|---|
date | Sat, 12 Jul 2008 10:42:41 -0400 |
parents | 60cf25102fb2 |
children |
comparison
equal
deleted
inserted
replaced
8:60cf25102fb2 | 9:5412a1ff2e49 |
---|---|
55 } | 55 } |
56 | 56 |
57 void exit() | 57 void exit() |
58 { | 58 { |
59 running = false; | 59 running = false; |
60 } | |
61 | |
62 void wait() | |
63 { | |
64 thread.join(); | |
60 } | 65 } |
61 | 66 |
62 bool addConnection(Dispatcher handler) | 67 bool addConnection(Dispatcher handler) |
63 { | 68 { |
64 log.trace("adding handler"); | 69 log.trace("adding handler"); |
124 log.error("Selector.select returned {}", eventCount); | 129 log.error("Selector.select returned {}", eventCount); |
125 } | 130 } |
126 //add Conduits to listener | 131 //add Conduits to listener |
127 freshList.processAll( (ref Dispatcher h) | 132 freshList.processAll( (ref Dispatcher h) |
128 { | 133 { |
129 selector.reregister(h.transport, h.events(), h); | 134 selector.register(h.transport, h.events(), h); |
130 return 1; | 135 return 1; |
131 }); | 136 }); |
132 remList.processAll( (ref Dispatcher h) | 137 remList.processAll( (ref Dispatcher h) |
133 { | 138 { |
134 selector.unregister(h.transport); | 139 selector.unregister(h.transport); |
143 { | 148 { |
144 switch(result) | 149 switch(result) |
145 { | 150 { |
146 case CLOSE: | 151 case CLOSE: |
147 s.unregister(h.transport); | 152 s.unregister(h.transport); |
148 (cast (AsyncSocketConduit) h.transport).shutdown(); | 153 h.transport.detach(); |
149 (cast (AsyncSocketConduit) h.transport).detach(); | |
150 break; | 154 break; |
151 case UNREGISTER: | 155 case UNREGISTER: |
152 s.unregister(h.transport); | 156 s.unregister(h.transport); |
153 break; | 157 break; |
154 case REMAIN: | 158 case REMAIN: |
156 break; | 160 break; |
157 case REGISTER: | 161 case REGISTER: |
158 s.register(h.transport, h.events(), h); | 162 s.register(h.transport, h.events(), h); |
159 break; | 163 break; |
160 case REREGISTER: | 164 case REREGISTER: |
161 s.reregister(h.transport, h.events(), h); | 165 s.register(h.transport, h.events(), h); |
162 break; | 166 break; |
163 default: | 167 default: |
164 log.error("processReturn: unknown return value"); | 168 log.error("processReturn: unknown return value"); |
165 } | 169 } |
166 } | 170 } |