[mini] Always emit safepoints, except WASM
[mono-project.git] / mono / metadata / threadpool.h
blobc02b9861b956c19cb289fd3fc02095708e65bb4a
1 /**
2 * \file
3 */
5 #ifndef _MONO_METADATA_THREADPOOL_H_
6 #define _MONO_METADATA_THREADPOOL_H_
8 #include <config.h>
9 #include <glib.h>
11 #include <mono/metadata/exception.h>
12 #include <mono/metadata/object-internals.h>
13 #include <mono/metadata/icalls.h>
15 typedef struct _MonoNativeOverlapped MonoNativeOverlapped;
17 void
18 mono_threadpool_cleanup (void);
20 MonoAsyncResult *
21 mono_threadpool_begin_invoke (MonoDomain *domain, MonoObject *target, MonoMethod *method, gpointer *params, MonoError *error);
22 MonoObject *
23 mono_threadpool_end_invoke (MonoAsyncResult *ares, MonoArray **out_args, MonoObject **exc, MonoError *error);
25 gboolean
26 mono_threadpool_remove_domain_jobs (MonoDomain *domain, int timeout);
28 void
29 mono_threadpool_suspend (void);
30 void
31 mono_threadpool_resume (void);
33 /* Internals */
35 gboolean
36 mono_threadpool_enqueue_work_item (MonoDomain *domain, MonoObject *work_item, MonoError *error);
38 #endif // _MONO_METADATA_THREADPOOL_H_