fix: 优化同步,避免长时间加锁

This commit is contained in:
ioito
2021-04-23 18:55:02 +08:00
committed by Qu Xuan
parent d62d6704a4
commit f9f0c8f3cb
82 changed files with 1024 additions and 699 deletions
+8 -2
View File
@@ -419,8 +419,11 @@ func (self *SGuestImage) genUpdateImage(ctx context.Context, userCred mcclient.T
return nil, false
}
return func() error {
lockman.LockRawObject(ctx, ImageManager.Keyword(), "name")
defer lockman.ReleaseRawObject(ctx, ImageManager.Keyword(), "name")
name, _ := dict.GetString("name")
name, err := db.GenerateName(ImageManager, userCred, fmt.Sprintf("%s-%s-%d", name, "data", index))
name, err := db.GenerateName(ctx, ImageManager, userCred, fmt.Sprintf("%s-%s-%d", name, "data", index))
if err != nil {
return errors.Wrap(err, "fail to generate unique name")
}
@@ -437,8 +440,11 @@ func (self *SGuestImage) genUpdateImage(ctx context.Context, userCred mcclient.T
return func() error {
if dict.Contains("name") {
lockman.LockRawObject(ctx, ImageManager.Keyword(), "name")
defer lockman.ReleaseRawObject(ctx, ImageManager.Keyword(), "name")
name, _ := dict.GetString("name")
name, err := db.GenerateName(ImageManager, userCred, fmt.Sprintf("%s-%s", name, "root"))
name, err := db.GenerateName(ctx, ImageManager, userCred, fmt.Sprintf("%s-%s", name, "root"))
if err != nil {
return errors.Wrap(err, "fail to generate unique name")
}