errorFS.SetError

geesefs-0-30-9
Aaron Jacobs 2015-08-04 08:35:59 +10:00
parent 8aecb35541
commit 978399a268
1 changed files with 24 additions and 2 deletions

View File

@ -15,8 +15,8 @@
package errorfs
import (
"errors"
"reflect"
"sync"
"syscall"
"github.com/jacobsa/fuse/fuseutil"
@ -38,6 +38,28 @@ type FS interface {
}
func New() (fs FS, err error) {
err = errors.New("TODO")
fs = &errorFS{
errors: make(map[string]syscall.Errno),
}
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
}