1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-29 17:41:15 +03:00

Improve API and perfomance.

This commit is contained in:
Vladimir Mihailenco
2012-07-26 21:43:21 +03:00
parent 153bd05fb7
commit e73e87fc11
3 changed files with 154 additions and 116 deletions

View File

@ -31,7 +31,17 @@ func (c *PubSubClient) consumeMessages() {
for {
// Replies can arrive in batches.
// Read whole reply and parse messages one by one.
rd, err := c.ReadReply()
rd, err := c.readerPool.Get()
if err != nil {
msg := &Message{}
msg.Err = err
c.ch <- msg
return
}
defer c.readerPool.Add(rd)
err = c.ReadReply(rd)
if err != nil {
msg := &Message{}
msg.Err = err
@ -42,13 +52,13 @@ func (c *PubSubClient) consumeMessages() {
for {
msg := &Message{}
req.ParseReply(rd)
reply, err := req.Reply()
replyI, err := req.ParseReply(rd)
if err != nil {
msg.Err = err
c.ch <- msg
break
}
reply := replyI.([]interface{})
msgName := reply[0].(string)
switch msgName {