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

refactor(worker): use write blocking for semaphore

这个提交包含在:
bigeagle
2016-04-24 17:02:49 +08:00
父节点 6b05a5894e
当前提交 26b7ef9a9c
共有 2 个文件被更改,包括 2 次插入4 次删除

查看文件

@@ -138,8 +138,8 @@ func runMirrorJob(provider mirrorProvider, ctrlChan <-chan ctrlAction, managerCh
runJob := func(kill <-chan empty, jobDone chan<- empty) {
select {
case <-semaphore:
defer func() { semaphore <- empty{} }()
case semaphore <- empty{}:
defer func() { <-semaphore }()
runJobWrapper(kill, jobDone)
case <-kill:
jobDone <- empty{}

查看文件

@@ -66,7 +66,6 @@ func TestMirrorJob(t *testing.T) {
ctrlChan := make(chan ctrlAction)
managerChan := make(chan struct{})
semaphore := make(chan empty, 1)
semaphore <- empty{}
go runMirrorJob(provider, ctrlChan, managerChan, semaphore)
for i := 0; i < 2; i++ {
@@ -105,7 +104,6 @@ echo $TUNASYNC_WORKING_DIR
ctrlChan := make(chan ctrlAction)
managerChan := make(chan struct{})
semaphore := make(chan empty, 1)
semaphore <- empty{}
Convey("If we kill it", func(ctx C) {
go runMirrorJob(provider, ctrlChan, managerChan, semaphore)