#include "config.h"
#ifdef HAVE_SGEN_GC
#include <glib.h>
-#include "metadata/gc-internal.h"
#include "metadata/sgen-gc.h"
+#include "metadata/gc-internal.h"
#include "metadata/sgen-archdep.h"
#include "metadata/object-internals.h"
gboolean
mono_sgen_resume_thread (SgenThreadInfo *info)
{
- return pthread_kill (info->id, restart_signal_num) == 0;
+ return pthread_kill (mono_thread_info_get_tid (info), restart_signal_num) == 0;
}
gboolean
mono_sgen_suspend_thread (SgenThreadInfo *info)
{
- return pthread_kill (info->id, suspend_signal_num) == 0;
+ return pthread_kill (mono_thread_info_get_tid (info), suspend_signal_num) == 0;
}
int
{
int count, result;
SgenThreadInfo *info;
- pthread_t me = pthread_self ();
+
+ MonoNativeThreadId me = mono_native_thread_id_get ();
count = 0;
- FOREACH_THREAD (info) {
- if (ARCH_THREAD_EQUALS (info->id, me)) {
+ FOREACH_THREAD_SAFE (info) {
+ if (mono_native_thread_id_equals (mono_thread_info_get_tid (info), me)) {
continue;
}
/*if (signum == suspend_signal_num && info->stop_count == global_stop_count)
continue;*/
- result = pthread_kill (info->id, signum);
+ result = pthread_kill (mono_thread_info_get_tid (info), signum);
if (result == 0) {
count++;
} else {
info->skip = 1;
}
- } END_FOREACH_THREAD
+ } END_FOREACH_THREAD_SAFE
mono_sgen_wait_for_suspend_ack (count);