Jelajahi Sumber

修复StaticField编译错误,瞬间检测出Session.RpcId这个多线程竞争的bug

tanghai 2 tahun lalu
induk
melakukan
ed303ffbe9

+ 1 - 0
Unity/Assets/Scripts/Core/World/Singleton.cs

@@ -17,6 +17,7 @@
         [StaticField]
         private static T instance;
         
+        [StaticField]
         public static T Instance
         {
             get

+ 1 - 0
Unity/Assets/Scripts/Core/World/World.cs

@@ -8,6 +8,7 @@ namespace ET
         [StaticField]
         private static World instance;
 
+        [StaticField]
         public static World Instance
         {
             get

+ 3 - 3
Unity/Assets/Scripts/Model/Share/Module/Message/Session.cs

@@ -66,7 +66,7 @@ namespace ET
         
         public static async ETTask<IResponse> Call(this Session self, IRequest request, ETCancellationToken cancellationToken)
         {
-            int rpcId = ++Session.RpcId;
+            int rpcId = ++self.RpcId;
             RpcInfo rpcInfo = new RpcInfo(request);
             self.requestCallbacks[rpcId] = rpcInfo;
             request.RpcId = rpcId;
@@ -102,7 +102,7 @@ namespace ET
 
         public static async ETTask<IResponse> Call(this Session self, IRequest request, int time = 0)
         {
-            int rpcId = ++Session.RpcId;
+            int rpcId = ++self.RpcId;
             RpcInfo rpcInfo = new(request);
             self.requestCallbacks[rpcId] = rpcInfo;
             request.RpcId = rpcId;
@@ -150,7 +150,7 @@ namespace ET
     {
         public AService AService { get; set; }
         
-        public static int RpcId
+        public int RpcId
         {
             get;
             set;