#include <mono/utils/mono-stack-unwinding.h>
#include <mono/utils/mono-linked-list-set.h>
#include <mono/utils/mono-tls.h>
-#include <mono/utils/mono-threads-coop.h>
-#include <mono/utils/mono-threads-api.h>
#include <mono/utils/mono-coop-semaphore.h>
#include <mono/io-layer/io-layer.h>
MonoThreadInfoInterruptToken *interrupt_token;
- /* MonoHandleArena for coop handles */
- gpointer handle_arena;
+ /* HandleStack for coop handles */
+ gpointer handle_stack;
+
+ /* Stack mark for targets that explicitly require one */
+ gpointer stack_mark;
} MonoThreadInfo;
typedef struct {
} MonoDoBlockingResult;
typedef enum {
- DoneBlockingAborted, //blocking was aborted and not properly restored, poll the state
DoneBlockingOk, //exited blocking fine
DoneBlockingWait, //thread should end suspended
} MonoDoneBlockingResult;
MonoThreadUnwindState* mono_thread_info_get_suspend_state (THREAD_INFO_TYPE *info);
gpointer
-mono_threads_cookie_for_reset_blocking_start (THREAD_INFO_TYPE *info);
+mono_threads_enter_gc_unsafe_region_cookie (void);
void mono_thread_info_wait_for_resume (THREAD_INFO_TYPE *info);
void mono_threads_begin_global_suspend (void);
void mono_threads_end_global_suspend (void);
+gboolean
+mono_thread_info_is_current (THREAD_INFO_TYPE *info);
+
#endif /* __MONO_THREADS_H__ */