123456789101112131415161718192021222324252627282930313233343536373839 |
- package zsshrpc_server
- import (
- "bytes"
- "sync"
- )
- type ThreadSafeBuffer struct {
- b bytes.Buffer
- m sync.RWMutex
- }
- func (b *ThreadSafeBuffer) Read(p []byte) (n int, err error) {
- b.m.RLock()
- defer b.m.RUnlock()
- return b.b.Read(p)
- }
- func (b *ThreadSafeBuffer) Write(p []byte) (n int, err error) {
- b.m.Lock()
- defer b.m.Unlock()
- return b.b.Write(p)
- }
- func (b *ThreadSafeBuffer) String() string {
- b.m.RLock()
- defer b.m.RUnlock()
- return b.b.String()
- }
- func (b *ThreadSafeBuffer) Reset() {
- b.m.Lock()
- defer b.m.Unlock()
- b.b.Reset()
- }
- func (b *ThreadSafeBuffer) Len() int {
- b.m.RLock()
- defer b.m.RUnlock()
- return b.b.Len()
- }
|