فهرست منبع

Merge pull request #481 from songzhibin97/gva_gormv2_dev

fix casbin datarace
奇淼(piexlmax 3 سال پیش
والد
کامیت
e4ee942a2c
1فایلهای تغییر یافته به همراه5 افزوده شده و 2 حذف شده
  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
 }