2010-03-12 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / threadpool.h
blobedf35561ced26176a2a9ba65ac1938b7a20632a7
1 #ifndef _MONO_THREADPOOL_H_
2 #define _MONO_THREADPOOL_H_
4 #include <mono/metadata/object-internals.h>
5 #include <mono/metadata/reflection.h>
7 /* No managed code here */
8 void mono_thread_pool_init (void) MONO_INTERNAL;
10 MonoAsyncResult *
11 mono_thread_pool_add (MonoObject *target, MonoMethodMessage *msg,
12 MonoDelegate *async_callback, MonoObject *state) MONO_INTERNAL;
14 MonoObject *
15 mono_thread_pool_finish (MonoAsyncResult *ares, MonoArray **out_args,
16 MonoObject **exc) MONO_INTERNAL;
18 void mono_thread_pool_cleanup (void) MONO_INTERNAL;
20 gboolean mono_thread_pool_remove_domain_jobs (MonoDomain *domain, int timeout) MONO_INTERNAL;
22 void
23 ves_icall_System_Threading_ThreadPool_GetAvailableThreads (int *workerThreads,
24 int *completionPortThreads) MONO_INTERNAL;
26 void
27 ves_icall_System_Threading_ThreadPool_GetMaxThreads (int *workerThreads,
28 int *completionPortThreads) MONO_INTERNAL;
30 void
31 ves_icall_System_Threading_ThreadPool_GetMinThreads (gint *workerThreads,
32 gint *completionPortThreads) MONO_INTERNAL;
34 MonoBoolean
35 ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads,
36 gint completionPortThreads) MONO_INTERNAL;
38 MonoBoolean
39 ves_icall_System_Threading_ThreadPool_SetMaxThreads (gint workerThreads,
40 gint completionPortThreads) MONO_INTERNAL;
42 typedef void (*MonoThreadPoolFunc) (gpointer user_data);
43 void mono_install_threadpool_thread_hooks (MonoThreadPoolFunc start_func, MonoThreadPoolFunc finish_func, gpointer user_data);
45 typedef void (*MonoThreadPoolItemFunc) (gpointer user_data);
46 void mono_install_threadpool_item_hooks (MonoThreadPoolItemFunc begin_func, MonoThreadPoolItemFunc end_func, gpointer user_data);
48 #endif