X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fthreadpool.h;h=c860b7ebfca3face33fa6e8292aab026fc691878;hb=83f95595b9d8c6c2812a35837aa11312a54278e4;hp=8ae1445ffdf9cfda790d8524561c35532eaf22d3;hpb=1c9ec4be0d7b41c7f5d25dc2c8ec458b1c711875;p=mono.git diff --git a/mono/metadata/threadpool.h b/mono/metadata/threadpool.h index 8ae1445ffdf..c860b7ebfca 100644 --- a/mono/metadata/threadpool.h +++ b/mono/metadata/threadpool.h @@ -3,36 +3,50 @@ #include #include +#include -extern int mono_max_worker_threads; +/* No managed code here */ +void mono_thread_pool_init (void) MONO_INTERNAL; +void icall_append_job (MonoObject *ar) MONO_INTERNAL; +void icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state) MONO_INTERNAL; MonoAsyncResult * mono_thread_pool_add (MonoObject *target, MonoMethodMessage *msg, - MonoDelegate *async_callback, MonoObject *state); + MonoDelegate *async_callback, MonoObject *state) MONO_INTERNAL; MonoObject * mono_thread_pool_finish (MonoAsyncResult *ares, MonoArray **out_args, - MonoObject **exc); + MonoObject **exc) MONO_INTERNAL; -void mono_thread_pool_cleanup (void); +void mono_thread_pool_cleanup (void) MONO_INTERNAL; + +gboolean mono_thread_pool_remove_domain_jobs (MonoDomain *domain, int timeout) MONO_INTERNAL; void ves_icall_System_Threading_ThreadPool_GetAvailableThreads (int *workerThreads, - int *completionPortThreads); + int *completionPortThreads) MONO_INTERNAL; void ves_icall_System_Threading_ThreadPool_GetMaxThreads (int *workerThreads, - int *completionPortThreads); + int *completionPortThreads) MONO_INTERNAL; void ves_icall_System_Threading_ThreadPool_GetMinThreads (gint *workerThreads, - gint *completionPortThreads); + gint *completionPortThreads) MONO_INTERNAL; MonoBoolean ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads, - gint completionPortThreads); + gint completionPortThreads) MONO_INTERNAL; MonoBoolean -ves_icall_System_Threading_ThreadPool_BindHandle (gpointer handle); +ves_icall_System_Threading_ThreadPool_SetMaxThreads (gint workerThreads, + gint completionPortThreads) MONO_INTERNAL; + +typedef void (*MonoThreadPoolFunc) (gpointer user_data); +void mono_install_threadpool_thread_hooks (MonoThreadPoolFunc start_func, MonoThreadPoolFunc finish_func, gpointer user_data); + +typedef void (*MonoThreadPoolItemFunc) (gpointer user_data); +void mono_install_threadpool_item_hooks (MonoThreadPoolItemFunc begin_func, MonoThreadPoolItemFunc end_func, gpointer user_data); #endif +