Suspended threads should not acquire synchronization objects.
diff --git a/server/process.c b/server/process.c
index 785c4cb..c3cf436 100644
--- a/server/process.c
+++ b/server/process.c
@@ -673,7 +673,11 @@
while (thread)
{
struct thread *next = thread->proc_next;
- if (!thread->suspend) continue_thread( thread );
+ if (!thread->suspend)
+ {
+ continue_thread( thread );
+ wake_thread( thread );
+ }
thread = next;
}
}
@@ -818,7 +822,7 @@
if (!check_process_write_access( thread, addr, len ))
{
set_error( STATUS_ACCESS_DENIED );
- return;
+ goto done;
}
/* first word is special */
if (len > 1)