From fd70c2e600aa6dd87cea3c3a1df704bcfe95a3f9 Mon Sep 17 00:00:00 2001 From: vhertz Date: Sat, 1 Oct 2022 23:08:59 +0900 Subject: [PATCH] Implement ql_syscall_sched_yield --- qiling/os/posix/syscall/sched.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qiling/os/posix/syscall/sched.py b/qiling/os/posix/syscall/sched.py index 558e56d0a..407b2b5b8 100644 --- a/qiling/os/posix/syscall/sched.py +++ b/qiling/os/posix/syscall/sched.py @@ -3,7 +3,7 @@ # Cross Platform and Multi Architecture Advanced Binary Emulation Framework # -import os +import os, gevent from multiprocessing import Process from qiling import Qiling @@ -131,4 +131,8 @@ def ql_syscall_clone(ql: Qiling, flags: int, child_stack: int, parent_tidptr: in return regreturn def ql_syscall_sched_yield(ql: Qiling): + def _sched_yield(cur_thread): + gevent.sleep(0) + ql.emu_stop() + ql.os.thread_management.cur_thread.sched_cb = _sched_yield return 0