New test.
[mono.git] / mono / metadata / threadpool.h
1 #ifndef _MONO_THREADPOOL_H_
2 #define _MONO_THREADPOOL_H_
3
4 #include <mono/metadata/object-internals.h>
5 #include <mono/metadata/reflection.h>
6
7 /* No managed code here */
8 void mono_thread_pool_init (void) MONO_INTERNAL;
9
10 void icall_append_job (MonoObject *ar) MONO_INTERNAL;
11 MonoAsyncResult *
12 mono_thread_pool_add     (MonoObject *target, MonoMethodMessage *msg, 
13                           MonoDelegate *async_callback, MonoObject *state) MONO_INTERNAL;
14
15 MonoObject *
16 mono_thread_pool_finish (MonoAsyncResult *ares, MonoArray **out_args, 
17                          MonoObject **exc) MONO_INTERNAL;
18
19 void mono_thread_pool_cleanup (void) MONO_INTERNAL;
20
21 gboolean mono_thread_pool_remove_domain_jobs (MonoDomain *domain, int timeout) MONO_INTERNAL;
22
23 void
24 ves_icall_System_Threading_ThreadPool_GetAvailableThreads (int *workerThreads,
25                                                            int *completionPortThreads) MONO_INTERNAL;
26
27 void
28 ves_icall_System_Threading_ThreadPool_GetMaxThreads (int *workerThreads,
29                                                      int *completionPortThreads) MONO_INTERNAL;
30
31 void
32 ves_icall_System_Threading_ThreadPool_GetMinThreads (gint *workerThreads, 
33                                                                 gint *completionPortThreads) MONO_INTERNAL;
34
35 MonoBoolean
36 ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads, 
37                                                                 gint completionPortThreads) MONO_INTERNAL;
38
39 MonoBoolean
40 ves_icall_System_Threading_ThreadPool_SetMaxThreads (gint workerThreads, 
41                                                                 gint completionPortThreads) MONO_INTERNAL;
42
43 typedef void  (*MonoThreadPoolFunc) (gpointer user_data);
44 void mono_install_threadpool_thread_hooks (MonoThreadPoolFunc start_func, MonoThreadPoolFunc finish_func, gpointer user_data);
45
46 typedef void  (*MonoThreadPoolItemFunc) (gpointer user_data);
47 void mono_install_threadpool_item_hooks (MonoThreadPoolItemFunc begin_func, MonoThreadPoolItemFunc end_func, gpointer user_data);
48
49 #endif
50