Deadlock fix and cleanups

This commit is contained in:
Jakob Borg
2014-01-13 10:29:23 -07:00
parent f0b18685a5
commit ba0e4ded65
5 changed files with 67 additions and 33 deletions

View File

@@ -29,7 +29,10 @@ func (m *fileMonitor) FileBegins(cc <-chan content) error {
dir := path.Dir(tmp)
_, err := os.Stat(dir)
if err != nil && os.IsNotExist(err) {
os.MkdirAll(dir, 0777)
err = os.MkdirAll(dir, 0777)
if err != nil {
return err
}
}
outFile, err := os.Create(tmp)
@@ -106,6 +109,13 @@ func (m *fileMonitor) FileDone() error {
tmp := tempName(m.path, m.global.Modified)
defer os.Remove(tmp)
if m.copyError != nil {
return m.copyError
}
if m.writeError != nil {
return m.writeError
}
err := hashCheck(tmp, m.global.Blocks)
if err != nil {
return fmt.Errorf("%s: %s (tmp) (deleting)", path.Base(m.name), err.Error())