@ -55,10 +55,6 @@ func NewSocketClient(addr string, mustConnect bool) *socketClient {
}
}
func ( cli * socketClient ) OnStart ( ) error {
func ( cli * socketClient ) OnStart ( ) error {
if err := cli . BaseService . OnStart ( ) ; err != nil {
return err
}
var err error
var err error
var conn net . Conn
var conn net . Conn
RETRY_LOOP :
RETRY_LOOP :
@ -82,15 +78,12 @@ RETRY_LOOP:
}
}
func ( cli * socketClient ) OnStop ( ) {
func ( cli * socketClient ) OnStop ( ) {
cli . BaseService . OnStop ( )
cli . mtx . Lock ( )
defer cli . mtx . Unlock ( )
if cli . conn != nil {
if cli . conn != nil {
// does this really need a mutex?
cli . conn . Close ( )
cli . conn . Close ( )
}
}
cli . mtx . Lock ( )
defer cli . mtx . Unlock ( )
cli . flushQueue ( )
cli . flushQueue ( )
}
}
@ -209,19 +202,18 @@ func (cli *socketClient) didRecvResponse(res *types.Response) error {
reqres . Done ( ) // Release waiters
reqres . Done ( ) // Release waiters
cli . reqSent . Remove ( next ) // Pop first item from linked list
cli . reqSent . Remove ( next ) // Pop first item from linked list
// Notify client listener if set (global callback).
if cli . resCb != nil {
cli . resCb ( reqres . Request , res )
}
// Notify reqRes listener if set (request specific callback).
// Notify reqRes listener if set (request specific callback).
// NOTE: it is possible this callback isn't set on the reqres object.
// NOTE: it is possible this callback isn't set on the reqres object.
// at this point, in which case it will be called after, when it is set.
// at this point, in which case it will be called after, when it is set.
// TODO: should we move this after the resCb call so the order is always consistent?
if cb := reqres . GetCallback ( ) ; cb != nil {
if cb := reqres . GetCallback ( ) ; cb != nil {
cb ( res )
cb ( res )
}
}
// Notify client listener if set (global callback).
if cli . resCb != nil {
cli . resCb ( reqres . Request , res )
}
return nil
return nil
}
}