1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-06 06:26:46 +00:00

closing log files where they were opened

这个提交包含在:
z4yx
2020-03-28 15:15:51 +08:00
父节点 d10387e40b
当前提交 1fb9f85862
共有 5 个文件被更改,包括 13 次插入3 次删除

查看文件

@@ -19,6 +19,7 @@ type baseProvider struct {
isMaster bool
cmd *cmdJob
logFileFd *os.File
isRunning atomic.Value
cgroup *cgroupHook
@@ -128,10 +129,19 @@ func (p *baseProvider) prepareLogFile(append bool) error {
logger.Errorf("Error opening logfile %s: %s", p.LogFile(), err.Error())
return err
}
p.logFileFd = logFile
p.cmd.SetLogFile(logFile)
return nil
}
func (p *baseProvider) closeLogFile() (err error) {
if p.logFileFd != nil {
err = p.logFileFd.Close()
p.logFileFd = nil
}
return
}
func (p *baseProvider) Run() error {
panic("Not Implemented")
}

查看文件

@@ -88,6 +88,7 @@ func (p *cmdProvider) DataSize() string {
func (p *cmdProvider) Run() error {
p.dataSize = ""
defer p.closeLogFile()
if err := p.Start(); err != nil {
return err
}

查看文件

@@ -105,6 +105,7 @@ func (p *rsyncProvider) DataSize() string {
func (p *rsyncProvider) Run() error {
p.dataSize = ""
defer p.closeLogFile()
if err := p.Start(); err != nil {
return err
}

查看文件

@@ -118,9 +118,6 @@ func (c *cmdJob) Wait() error {
return c.retErr
default:
err := c.cmd.Wait()
if c.cmd.Stdout != nil {
c.cmd.Stdout.(*os.File).Close()
}
c.retErr = err
close(c.finished)
return err

查看文件

@@ -156,6 +156,7 @@ func (p *twoStageRsyncProvider) Run() error {
if err := p.prepareLogFile(stage > 1); err != nil {
return err
}
defer p.closeLogFile()
if err = p.cmd.Start(); err != nil {
return err