Skip to content

Commit 46c422d

Browse files
committed
More logging
1 parent 62fedf4 commit 46c422d

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

pymetaverse/viewer/agent.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ async def addSimulator(self, handle, host, circuit, caps = None, parent = False)
3333
await sim.fetchCapabilities(caps)
3434

3535
if parent:
36+
logger.debug(f"Setting parent simulator to {sim}")
3637
self.simulator = sim
3738

3839
sim.on("message", self.handleMessage)
@@ -42,6 +43,7 @@ async def addSimulator(self, handle, host, circuit, caps = None, parent = False)
4243
def removeSimulator(self, simulator):
4344
logger.debug(f"Removing simulator {simulator.name} with address {simulator.host}")
4445
if simulator == self.simulator:
46+
logger.debug(f"Parent simulator {simulator} removed!")
4547
self.simulator = None
4648

4749
if simulator in self.simulators:

pymetaverse/viewer/simulator.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ async def connect(self, host, circuitCode):
5252
self.send(msg, True)
5353

5454
async def handleSystemMessages(self, msg):
55-
self.lastMessage = time.time()
5655
if msg.name == "PacketAck":
5756
acks = []
5857
for ack in msg.Packets:
@@ -73,10 +72,10 @@ async def handleSystemMessages(self, msg):
7372
del self.pendingPings[msg.PingID.PingID]
7473

7574
elif msg.name == "RegionHandshake":
76-
logger.debug(f"Received handshake for {self}")
7775
self.name = msg.RegionInfo.SimName.rstrip(b"\0").decode()
7876
self.owner = msg.RegionInfo.SimOwner
7977
self.id = msg.RegionInfo2.RegionID
78+
logger.debug(f"Received handshake for {self}")
8079

8180
msg = self.messageTemplate.getMessage("RegionHandshakeReply")
8281
msg.AgentData.AgentID = self.agent.agentId
@@ -92,6 +91,7 @@ async def handleMessage(self, addr, body):
9291
if addr != self.host:
9392
return
9493

94+
self.lastMessage = time.time()
9595
msg = self.messageTemplate.loadMessage(body)
9696
await self.handleSystemMessages(msg)
9797

@@ -126,26 +126,29 @@ async def ping(self, timeout = 5.0, forceUsePingCheck = False):
126126
loop = asyncio.get_running_loop()
127127
future = loop.create_future()
128128

129+
currentPing = self.pingSequence
130+
self.pingSequence = (currentPing + 1) & 0xFF
131+
129132
# If it exists at this point, it's probably not ever going to
130133
# come in
131-
if self.pingSequence in self.pendingPings:
132-
old_future = self.pendingPings[self.pingSequence]
134+
if currentPing in self.pendingPings:
135+
old_future = self.pendingPings[currentPing]
133136
if not old_future.done():
134137
old_future.set_result(False)
135-
del self.pendingPings[self.pingSequence]
138+
del self.pendingPings[currentPing]
136139

137140
msg = self.messageTemplate.getMessage("StartPingCheck")
138-
msg.PingID.PingID = self.pingSequence
141+
msg.PingID.PingID = currentPing
139142

140143
self.pendingPings[msg.PingID.PingID] = future
141-
self.pingSequence = (self.pingSequence + 1) & 0xFF
142144

143145
self.send(msg)
144146

145147
try:
146148
await asyncio.wait_for(future, timeout=timeout)
147149
except asyncio.TimeoutError:
148-
del self.pendingPings[msg.PingID.PingID]
150+
if msg.PingID.PingID in self.pendingPings:
151+
del self.pendingPings[msg.PingID.PingID]
149152
return False
150153

151154
return True

0 commit comments

Comments
 (0)