errorFS.SetError
parent
8aecb35541
commit
978399a268
|
@ -15,8 +15,8 @@
|
||||||
package errorfs
|
package errorfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"github.com/jacobsa/fuse/fuseutil"
|
"github.com/jacobsa/fuse/fuseutil"
|
||||||
|
@ -38,6 +38,28 @@ type FS interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
func New() (fs FS, err error) {
|
func New() (fs FS, err error) {
|
||||||
err = errors.New("TODO")
|
fs = &errorFS{
|
||||||
|
errors: make(map[string]syscall.Errno),
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type errorFS struct {
|
||||||
|
fuseutil.NotImplementedFileSystem
|
||||||
|
|
||||||
|
mu sync.Mutex
|
||||||
|
|
||||||
|
// Keys are reflect.Type.Name strings.
|
||||||
|
//
|
||||||
|
// GUARDED_BY(mu)
|
||||||
|
errors map[string]syscall.Errno
|
||||||
|
}
|
||||||
|
|
||||||
|
// LOCKS_EXCLUDED(fs.mu)
|
||||||
|
func (fs *errorFS) SetError(t reflect.Type, err syscall.Errno) {
|
||||||
|
fs.mu.Lock()
|
||||||
|
defer fs.mu.Unlock()
|
||||||
|
|
||||||
|
fs.errors[t.Name()] = err
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue