Merge pull request #14 from laanwj/2016_11_request_stop_message_loop
Make it possible to request stop of message loop
This commit is contained in:
commit
8c4ef5617b
|
@ -93,10 +93,19 @@ func (r *Ricochet) processNewConnection(conn net.Conn, service RicochetService)
|
||||||
func (r *Ricochet) ProcessMessages(service RicochetService) {
|
func (r *Ricochet) ProcessMessages(service RicochetService) {
|
||||||
for {
|
for {
|
||||||
oc := <-r.newconns
|
oc := <-r.newconns
|
||||||
|
if oc == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
go r.processConnection(oc, service)
|
go r.processConnection(oc, service)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Request that the ProcessMessages loop is stopped after handling all currently
|
||||||
|
// queued new connections.
|
||||||
|
func (r *Ricochet) RequestStopMessageLoop() {
|
||||||
|
r.newconns <- nil
|
||||||
|
}
|
||||||
|
|
||||||
// ProcessConnection starts a blocking process loop which continually waits for
|
// ProcessConnection starts a blocking process loop which continually waits for
|
||||||
// new messages to arrive from the connection and uses the given RicochetService
|
// new messages to arrive from the connection and uses the given RicochetService
|
||||||
// to process them.
|
// to process them.
|
||||||
|
|
Loading…
Reference in New Issue