about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--run.py5
-rw-r--r--src/focaccia/qemu/target.py3
2 files changed, 4 insertions, 4 deletions
diff --git a/run.py b/run.py
index d8cedcd..82be8e3 100644
--- a/run.py
+++ b/run.py
@@ -2,7 +2,6 @@ import os
 import signal
 import socket
 import subprocess
-import sys
 import select
 
 import ptrace.debugger
@@ -33,12 +32,12 @@ def schedule_next_nonblocking(sock, processes, current_proc):
     if not r:
         return current_proc  # no input → continue with current
 
-    data = sock.recv(64)
+    data = sock.recv(8)
     if not data:
         return current_proc
 
     try:
-        tid = int(data.strip())
+        tid = int.from_bytes(data, byteorder='little', signed=False)
     except ValueError:
         print(f"Scheduler: invalid data {data!r}")
         return current_proc
diff --git a/src/focaccia/qemu/target.py b/src/focaccia/qemu/target.py
index 3877bcc..9bb2c5d 100644
--- a/src/focaccia/qemu/target.py
+++ b/src/focaccia/qemu/target.py
@@ -407,5 +407,6 @@ class GDBServerStateIterator(GDBServerConnector):
         return GDBProgramState(self._process, gdb.selected_frame(), self.arch)
 
     def context_switch(self, thread_number: int) -> None:
-        self.sock.send(bytes([thread_number]))
+        data = thread_number.to_bytes(8, byteorder='little', signed=False)
+        self.sock.send(data)