[threadpool] Split domain and worker management (#4117)
[mono.git] / mono / metadata / threadpool-worker.h
1
2 #ifndef _MONO_METADATA_THREADPOOL_WORKER_H
3 #define _MONO_METADATA_THREADPOOL_WORKER_H
4
5 typedef struct MonoThreadPoolWorker MonoThreadPoolWorker;
6
7 typedef void (*MonoThreadPoolWorkerCallback)(gpointer);
8
9 void
10 mono_threadpool_worker_init (MonoThreadPoolWorker **worker);
11
12 void
13 mono_threadpool_worker_cleanup (MonoThreadPoolWorker *worker);
14
15 void
16 mono_threadpool_worker_enqueue (MonoThreadPoolWorker *worker, MonoThreadPoolWorkerCallback callback, gpointer data);
17
18 gboolean
19 mono_threadpool_worker_notify_completed (MonoThreadPoolWorker *worker);
20
21 gint32
22 mono_threadpool_worker_get_min (MonoThreadPoolWorker *worker);
23 gboolean
24 mono_threadpool_worker_set_min (MonoThreadPoolWorker *worker, gint32 value);
25
26 gint32
27 mono_threadpool_worker_get_max (MonoThreadPoolWorker *worker);
28 gboolean
29 mono_threadpool_worker_set_max (MonoThreadPoolWorker *worker, gint32 value);
30
31 void
32 mono_threadpool_worker_set_suspended (MonoThreadPoolWorker *worker, gboolean suspended);
33
34 #endif /* _MONO_METADATA_THREADPOOL_WORKER_H */