nixstore/remotestore: add a mutex around the connection
This commit is contained in:
parent
730f157cb1
commit
20617e22f1
1 changed files with 9 additions and 0 deletions
|
@ -7,6 +7,7 @@ import (
|
|||
"net"
|
||||
"path"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"hg.lukegb.com/lukegb/depot/go/nix/nar/narinfo"
|
||||
"hg.lukegb.com/lukegb/depot/go/nix/nixwire"
|
||||
|
@ -26,9 +27,14 @@ type Daemon struct {
|
|||
conn net.Conn
|
||||
w *nixwire.Serializer
|
||||
r *nixwire.Deserializer
|
||||
mu sync.Mutex
|
||||
err error
|
||||
}
|
||||
|
||||
func (d *Daemon) NARInfo(storePath string) (*narinfo.NarInfo, error) {
|
||||
d.mu.Lock()
|
||||
defer d.mu.Unlock()
|
||||
|
||||
if _, err := d.w.WriteUint64(WopQueryPathInfo); err != nil {
|
||||
return nil, fmt.Errorf("writing worker op WopQueryPathInfo: %w", err)
|
||||
}
|
||||
|
@ -104,6 +110,9 @@ func (d *Daemon) NARInfo(storePath string) (*narinfo.NarInfo, error) {
|
|||
}
|
||||
|
||||
func (d *Daemon) Close() error {
|
||||
d.mu.Lock()
|
||||
defer d.mu.Unlock()
|
||||
|
||||
return d.conn.Close()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue