projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[sgen] Allocate job data dynamically.
[mono.git]
/
mono
/
utils
/
mono-threads.h
diff --git
a/mono/utils/mono-threads.h
b/mono/utils/mono-threads.h
index f2aa373f5c86b5e0e2c7b17bb4b496314b6c6d42..f192dd70732e1e6fc42a06395bcad58941879ead 100644
(file)
--- a/
mono/utils/mono-threads.h
+++ b/
mono/utils/mono-threads.h
@@
-108,6
+108,7
@@
typedef struct {
/* only needed by the posix backend */
#if (defined(_POSIX_VERSION) || defined(__native_client__)) && !defined (__MACH__)
MonoSemType suspend_semaphore;
/* only needed by the posix backend */
#if (defined(_POSIX_VERSION) || defined(__native_client__)) && !defined (__MACH__)
MonoSemType suspend_semaphore;
+ gboolean syscall_break_signal;
#endif
/*In theory, only the posix backend needs this, but having it on mach/win32 simplifies things a lot.*/
#endif
/*In theory, only the posix backend needs this, but having it on mach/win32 simplifies things a lot.*/
@@
-141,13
+142,13
@@
typedef struct {
/*
Requires the world to be stoped
*/
/*
Requires the world to be stoped
*/
-#define FOREACH_THREAD(thread) MONO_LLS_FOREACH (mono_thread_info_list_head (), thread)
+#define FOREACH_THREAD(thread) MONO_LLS_FOREACH (mono_thread_info_list_head (), thread
, SgenThreadInfo*
)
#define END_FOREACH_THREAD MONO_LLS_END_FOREACH
/*
Snapshot iteration.
*/
#define END_FOREACH_THREAD MONO_LLS_END_FOREACH
/*
Snapshot iteration.
*/
-#define FOREACH_THREAD_SAFE(thread) MONO_LLS_FOREACH_SAFE (mono_thread_info_list_head (), thread)
+#define FOREACH_THREAD_SAFE(thread) MONO_LLS_FOREACH_SAFE (mono_thread_info_list_head (), thread
, SgenThreadInfo*
)
#define END_FOREACH_THREAD_SAFE MONO_LLS_END_FOREACH_SAFE
#define mono_thread_info_get_tid(info) ((MonoNativeThreadId)((MonoThreadInfo*)info)->node.key)
#define END_FOREACH_THREAD_SAFE MONO_LLS_END_FOREACH_SAFE
#define mono_thread_info_get_tid(info) ((MonoNativeThreadId)((MonoThreadInfo*)info)->node.key)
@@
-217,6
+218,8
@@
mono_threads_unregister_current_thread (THREAD_INFO_TYPE *info) MONO_INTERNAL;
void
mono_thread_info_disable_new_interrupt (gboolean disable) MONO_INTERNAL;
void
mono_thread_info_disable_new_interrupt (gboolean disable) MONO_INTERNAL;
+void
+mono_thread_info_abort_socket_syscall_for_close (MonoNativeThreadId tid) MONO_INTERNAL;
#if !defined(HOST_WIN32)
#if !defined(HOST_WIN32)
@@
-229,6
+232,12
@@
int
mono_threads_pthread_kill (THREAD_INFO_TYPE *info, int signum) MONO_INTERNAL;
#endif
mono_threads_pthread_kill (THREAD_INFO_TYPE *info, int signum) MONO_INTERNAL;
#endif
+#else /* !defined(HOST_WIN32) */
+
+HANDLE
+ mono_threads_CreateThread (LPSECURITY_ATTRIBUTES attributes, SIZE_T stack_size, LPTHREAD_START_ROUTINE start_routine, LPVOID arg, DWORD creation_flags, LPDWORD thread_id);
+
+
#endif /* !defined(HOST_WIN32) */
/* Plartform specific functions DON'T use them */
#endif /* !defined(HOST_WIN32) */
/* Plartform specific functions DON'T use them */
@@
-238,6
+247,8
@@
gboolean mono_threads_core_resume (MonoThreadInfo *info) MONO_INTERNAL;
void mono_threads_platform_register (MonoThreadInfo *info) MONO_INTERNAL; //ok
void mono_threads_platform_free (MonoThreadInfo *info) MONO_INTERNAL;
void mono_threads_core_interrupt (MonoThreadInfo *info) MONO_INTERNAL;
void mono_threads_platform_register (MonoThreadInfo *info) MONO_INTERNAL; //ok
void mono_threads_platform_free (MonoThreadInfo *info) MONO_INTERNAL;
void mono_threads_core_interrupt (MonoThreadInfo *info) MONO_INTERNAL;
+void mono_threads_core_abort_syscall (MonoThreadInfo *info) MONO_INTERNAL;
+gboolean mono_threads_core_needs_abort_syscall (void) MONO_INTERNAL;
MonoNativeThreadId mono_native_thread_id_get (void) MONO_INTERNAL;
MonoNativeThreadId mono_native_thread_id_get (void) MONO_INTERNAL;