1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-07 23:16:47 +00:00

feature(worker): implemented Worker object, worker side code is almost done

这个提交包含在:
bigeagle
2016-04-28 18:34:22 +08:00
父节点 daa0b3c204
当前提交 ce3471e30d
共有 13 个文件被更改,包括 462 次插入124 次删除

查看文件

@@ -28,7 +28,7 @@ type jobMessage struct {
type mirrorJob struct {
provider mirrorProvider
ctrlChan chan ctrlAction
stopped chan empty
disabled chan empty
enabled bool
}
@@ -44,12 +44,12 @@ func (m *mirrorJob) Name() string {
return m.provider.Name()
}
func (m *mirrorJob) Stopped() bool {
func (m *mirrorJob) Disabled() bool {
if !m.enabled {
return true
}
select {
case <-m.stopped:
case <-m.disabled:
return true
default:
return false
@@ -65,8 +65,8 @@ func (m *mirrorJob) Stopped() bool {
// TODO: message struct for managerChan
func (m *mirrorJob) Run(managerChan chan<- jobMessage, semaphore chan empty) error {
m.stopped = make(chan empty)
defer close(m.stopped)
m.disabled = make(chan empty)
defer close(m.disabled)
provider := m.provider
@@ -210,6 +210,7 @@ func (m *mirrorJob) Run(managerChan chan<- jobMessage, semaphore chan empty) err
close(kill)
<-jobDone
case jobDisable:
m.enabled = false
close(kill)
<-jobDone
return nil
@@ -234,6 +235,7 @@ func (m *mirrorJob) Run(managerChan chan<- jobMessage, semaphore chan empty) err
case jobStop:
m.enabled = false
case jobDisable:
m.enabled = false
return nil
case jobRestart:
m.enabled = true