code: func (f *fifoProcessor) Pull(cnx redis.Conn, src string,
  	timeout time.Duration) ([]byte, error) {
  
  	slices, err := redis.ByteSlices(cnx.Do("BRPOP", src, block(timeout)))
  	if err != nil {
  		return nil, err
  	}
  
  	return slices[1], nil
  }
docs: // Pull implements the `func Pull` from `Processor`. It pulls from the right-side
  // of the Redis structure in a blocking-fashion, using BLPOP.
  //
  // If an redis.ErrNil is returned, it is silenced, and both fields are returend
  // as nil. If the err is not a redis.ErrNil, but is still non-nil itself, then
  // it will be returend, along with an empty []byte.
  //
  // If an item can sucessfully be removed from the keyspace, it is returned
  // without error.