From 8db76a66ffe06dfecaac7c0aa046bcc952d8e7f1 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sun, 5 Jun 2022 21:12:56 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=AF=E6=8C=81=E5=A4=9A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=93=8D=E4=BD=9C=E4=B8=8D=E5=90=8C=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=90=8E=E4=BA=91=E7=AB=AF=E5=90=8C=E6=AD=A5=E5=90=88=E5=B9=B6?= =?UTF-8?q?=20https://github.com/siyuan-note/siyuan/issues/5092?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/osssync.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/model/osssync.go b/kernel/model/osssync.go index 059889a92..d65dfa703 100644 --- a/kernel/model/osssync.go +++ b/kernel/model/osssync.go @@ -188,6 +188,7 @@ func ossDownload(localDirPath, cloudDirPath string, bootOrExit bool) (fetchedFil needPushProgress := 32 < len(cloudFetches) waitGroup := &sync.WaitGroup{} var downloadErr error + downloadedFilesLock := sync.Mutex{} downloadedFiles = map[string]bool{} poolSize := 4 if poolSize > len(cloudFetches)-1 /* 不计入 /.siyuan/conf.json,配置文件最后单独下载 */ { @@ -205,7 +206,9 @@ func ossDownload(localDirPath, cloudDirPath string, bootOrExit bool) (fetchedFil downloadErr = err // 仅记录最后一次错误 return } - downloadedFiles[fetch] = true // FIXME: 并发修改 map + downloadedFilesLock.Lock() + downloadedFiles[fetch] = true + downloadedFilesLock.Unlock() if needPushProgress { msg := fmt.Sprintf(Conf.Language(103), fetchedFilesCount, len(cloudFetches)-fetchedFilesCount)