Use SIGUSR1 instead of SIGSTOP to suspend threads.
diff --git a/server/context_i386.c b/server/context_i386.c
index b7a7bb0..75028cf 100644
--- a/server/context_i386.c
+++ b/server/context_i386.c
@@ -534,7 +534,7 @@
if (suspend_for_ptrace( thread ))
{
get_thread_context( thread, CONTEXT_CONTROL, &context );
- resume_thread( thread );
+ resume_after_ptrace( thread );
}
return (void *)context.Eip;
}
@@ -576,7 +576,7 @@
if (flags && suspend_for_ptrace( thread ))
{
get_thread_context( thread, flags, data );
- resume_thread( thread );
+ resume_after_ptrace( thread );
}
}
release_object( thread );
@@ -604,7 +604,7 @@
if (flags && suspend_for_ptrace( thread ))
{
set_thread_context( thread, flags, get_req_data() );
- resume_thread( thread );
+ resume_after_ptrace( thread );
}
release_object( thread );
}