本文整理汇总了Golang中bufio.Reader.Reset方法的典型用法代码示例。如果您正苦于以下问题:Golang Reader.Reset方法的具体用法?Golang Reader.Reset怎么用?Golang Reader.Reset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bufio.Reader
的用法示例。
在下文中一共展示了Reader.Reset方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Put
// put back reader to the chan, if chan is full then discard it
func (b *TCPReadBuf) Put(buf *bufio.Reader, idx int) {
buf.Reset(nil)
select {
case b.instance[idx] <- buf:
default:
}
}
示例2: putBufioReader
// putBufioReader pub back a Reader to chan, if chan full discard it.
func putBufioReader(c chan *bufio.Reader, r *bufio.Reader) {
r.Reset(nil)
select {
case c <- r:
default:
log.Warn("tcp bufioReader cache full")
}
}
示例3: Put
func (rpool *ReaderPool) Put(reader *bufio.Reader) error {
reader.Reset(nil)
select {
case rpool.buf <- reader:
default:
return errors.New("poolfull")
}
return nil
}
示例4: tunneling
// tunneling to backend
func tunneling(addr string, rdr *bufio.Reader, c net.Conn, header *bytes.Buffer) error {
backend, err := dialTimeout("tcp", addr, time.Second*time.Duration(_BackendDialTimeout))
if err != nil {
// handle error
switch err := err.(type) {
case net.Error:
if err.Timeout() {
writeErrCode(c, []byte("4101"), false)
return err
}
}
writeErrCode(c, []byte("4102"), false)
return err
}
defer backend.Close()
if header != nil {
header.WriteTo(backend)
}
if n := rdr.Buffered(); n > 0 {
var data []byte
data, err = rdr.Peek(n)
if err != nil {
writeErrCode(c, []byte("4103"), false)
return err
}
_, err = backend.Write(data)
if err != nil {
writeErrCode(c, []byte("4102"), false)
return err
}
}
rdr.Reset(nil)
_BufioReaderPool.Put(rdr)
// Start transfering data
go pipe(c, backend)
pipe(backend, c)
return nil
}
示例5: scan
func (ac *addrCache) scan() ([]Account, error) {
files, err := ioutil.ReadDir(ac.keydir)
if err != nil {
return nil, err
}
var (
buf = new(bufio.Reader)
addrs []Account
keyJSON struct {
Address common.Address `json:"address"`
}
)
for _, fi := range files {
path := filepath.Join(ac.keydir, fi.Name())
if skipKeyFile(fi) {
glog.V(logger.Detail).Infof("ignoring file %s", path)
continue
}
fd, err := os.Open(path)
if err != nil {
glog.V(logger.Detail).Infoln(err)
continue
}
buf.Reset(fd)
// Parse the address.
keyJSON.Address = common.Address{}
err = json.NewDecoder(buf).Decode(&keyJSON)
switch {
case err != nil:
glog.V(logger.Debug).Infof("can't decode key %s: %v", path, err)
case (keyJSON.Address == common.Address{}):
glog.V(logger.Debug).Infof("can't decode key %s: missing or zero address", path)
default:
addrs = append(addrs, Account{Address: keyJSON.Address, File: path})
}
fd.Close()
}
return addrs, err
}
示例6: Put
// Put puts the bufio.Reader back into the pool.
func (bufPool *BufioReaderPool) Put(b *bufio.Reader) {
b.Reset(nil)
bufPool.pool.Put(b)
}
示例7: PutBufioReader
func PutBufioReader(br *bufio.Reader) {
br.Reset(nil)
bufioReaderPool.Put(br)
}
示例8: putBufioReader
func (bcl *BufferedConnListener) putBufioReader(br *bufio.Reader) {
br.Reset(nil)
bcl.bufioReaderPool.Put(br)
}
示例9: releaseReader
func (c *HostClient) releaseReader(br *bufio.Reader) {
br.Reset(nil)
c.readerPool.Put(br)
}
示例10: releaseReader
func releaseReader(s *Server, r *bufio.Reader) {
r.Reset(nil)
s.readerPool.Put(r)
}
示例11: putBufioReader
func putBufioReader(r *bufio.Reader) {
r.Reset(nil)
bufioReaderPool.Put(r)
}
示例12: putBufioReader
func putBufioReader(br *bufio.Reader) {
br.Reset(nil)
bufioReaderCache.Put(br)
}
示例13: releaseReader
func releaseReader(ctx *RequestCtx, r *bufio.Reader) {
r.Reset(nil)
ctx.s.readerPool.Put(r)
}
示例14: PutBufioReader
func PutBufioReader(pool *sync.Pool, br *bufio.Reader) {
br.Reset(nil)
pool.Put(br)
}