Skip to content

Commit adacbf2

Browse files
committed
优化:正确关闭 writer 和 reader
1 parent e903320 commit adacbf2

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

diskqueue.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,6 @@ func (queue *Diskqueue) Read() ([]byte, error) {
8484
// Close diskqueue
8585
func (queue *Diskqueue) Close() {
8686
queue.close = true
87-
Writer.sync()
88-
Reader.sync()
87+
Writer.close()
88+
Reader.close()
8989
}

reader.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,20 @@ func (r *reader) sync() {
101101
_ = ioutil.WriteFile(name, offset, Config.FilePerm)
102102
}
103103

104+
// close reader
105+
func (r *reader) close() {
106+
if r.file == nil {
107+
return
108+
}
109+
110+
r.sync()
111+
if err := r.file.Close(); err != nil {
112+
return
113+
}
114+
115+
r.file, r.offset, r.reader = nil, 0, nil
116+
}
117+
104118
// restore read offset
105119
func (r *reader) restore() {
106120
name := path.Join(Config.Path, Config.CheckpointFile)

0 commit comments

Comments
 (0)