Browse Source

fix casbin datarace

songzhibin97 3 năm trước cách đây
mục cha
commit
430a22be67
1 tập tin đã thay đổi với 5 bổ sung2 xóa
  1. 5 2
      server/service/sys_casbin.go

+ 5 - 2
server/service/sys_casbin.go

@@ -91,8 +91,9 @@ func ClearCasbin(v int, p ...string) bool {
 //@return: *casbin.Enforcer
 
 var (
-	e    *casbin.Enforcer
-	once sync.Once
+	e     *casbin.Enforcer
+	once  sync.Once
+	eLock sync.Mutex
 )
 
 func Casbin() *casbin.Enforcer {
@@ -101,7 +102,9 @@ func Casbin() *casbin.Enforcer {
 		e, _ = casbin.NewEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a)
 		e.AddFunction("ParamsMatch", ParamsMatchFunc)
 	})
+	eLock.Lock()
 	_ = e.LoadPolicy()
+	eLock.Unlock()
 	return e
 }