Fix resize and poller races; add coverage
- Fix resize message handling when session already exists - Guard poller selector.modify against removed fds - Handle send_bytes race when master_fd closes - Add tests for resize edge case, poller write KeyError, send_bytes race
This commit is contained in:
@@ -253,9 +253,13 @@ class TerminalSession(Session):
|
||||
os.close(fd)
|
||||
|
||||
async def send_bytes(self, data: bytes) -> bool:
|
||||
if self.master_fd is None:
|
||||
fd = self.master_fd
|
||||
if fd is None:
|
||||
return False
|
||||
try:
|
||||
await self.poller.write(fd, data)
|
||||
except (KeyError, OSError):
|
||||
return False
|
||||
await self.poller.write(self.master_fd, data)
|
||||
return True
|
||||
|
||||
async def send_meta(self, data: Meta) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user