|
@@ -96,7 +96,7 @@ namespace ET
|
|
|
self.SendInner(actorId, (MessageObject)message);
|
|
self.SendInner(actorId, (MessageObject)message);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private static void SendInner(this ProcessInnerSender self, ActorId actorId, MessageObject message)
|
|
|
|
|
|
|
+ private static bool SendInner(this ProcessInnerSender self, ActorId actorId, MessageObject message)
|
|
|
{
|
|
{
|
|
|
Fiber fiber = self.Fiber();
|
|
Fiber fiber = self.Fiber();
|
|
|
|
|
|
|
@@ -109,10 +109,10 @@ namespace ET
|
|
|
if (actorId.Fiber == fiber.Id)
|
|
if (actorId.Fiber == fiber.Id)
|
|
|
{
|
|
{
|
|
|
self.HandleMessage(fiber, new MessageInfo() {ActorId = actorId, MessageObject = message});
|
|
self.HandleMessage(fiber, new MessageInfo() {ActorId = actorId, MessageObject = message});
|
|
|
- return;
|
|
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- MessageQueue.Instance.Send(fiber.Address, actorId, message);
|
|
|
|
|
|
|
+ return MessageQueue.Instance.Send(fiber.Address, actorId, message);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static int GetRpcId(this ProcessInnerSender self)
|
|
public static int GetRpcId(this ProcessInnerSender self)
|
|
@@ -159,9 +159,13 @@ namespace ET
|
|
|
Type requestType = iRequest.GetType();
|
|
Type requestType = iRequest.GetType();
|
|
|
MessageSenderStruct messageSenderStruct = new(actorId, requestType, needException);
|
|
MessageSenderStruct messageSenderStruct = new(actorId, requestType, needException);
|
|
|
self.requestCallback.Add(rpcId, messageSenderStruct);
|
|
self.requestCallback.Add(rpcId, messageSenderStruct);
|
|
|
-
|
|
|
|
|
- self.SendInner(actorId, (MessageObject)iRequest);
|
|
|
|
|
|
|
|
|
|
|
|
+ IResponse response;
|
|
|
|
|
+ if (!self.SendInner(actorId, (MessageObject)iRequest)) // 纤程不存在
|
|
|
|
|
+ {
|
|
|
|
|
+ response = MessageHelper.CreateResponse(requestType, rpcId, ErrorCore.ERR_NotFoundActor);
|
|
|
|
|
+ return response;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
async ETTask Timeout()
|
|
async ETTask Timeout()
|
|
|
{
|
|
{
|
|
@@ -187,7 +191,7 @@ namespace ET
|
|
|
|
|
|
|
|
long beginTime = TimeInfo.Instance.ServerFrameTime();
|
|
long beginTime = TimeInfo.Instance.ServerFrameTime();
|
|
|
|
|
|
|
|
- IResponse response = await messageSenderStruct.Wait();
|
|
|
|
|
|
|
+ response = await messageSenderStruct.Wait();
|
|
|
|
|
|
|
|
long endTime = TimeInfo.Instance.ServerFrameTime();
|
|
long endTime = TimeInfo.Instance.ServerFrameTime();
|
|
|
|
|
|