1
// included by glib2.pas
6
{ The real GThreadPool is bigger, so you may only create a thread
7
pool with the constructor function }
8
PGThreadPool = ^TGThreadPool;
15
{ Get a thread pool with the function func, at most max_threads may
16
run at a time (max_threads == -1 means no limit), exclusive == TRUE
17
means, that the threads shouldn't be shared and that they will be
18
prestarted (otherwise they are started as needed) user_data is the
19
2nd argument to the func }
20
function g_thread_pool_new(func:TGFunc; user_data:gpointer; max_threads:gint; exclusive:gboolean; error:PPGError):PGThreadPool; cdecl; external gliblib;
22
{ Push new data into the thread pool. This task is assigned to a thread later
23
(when the maximal number of threads is reached for that pool) or now
24
(otherwise). If necessary a new thread will be started. The function
26
procedure g_thread_pool_push(pool:PGThreadPool; data:gpointer; error:PPGError); cdecl; external gliblib;
28
{ Set the number of threads, which can run concurrently for that pool, -1
29
means no limit. 0 means has the effect, that the pool won't process
30
requests until the limit is set higher again }
31
procedure g_thread_pool_set_max_threads(pool:PGThreadPool; max_threads:gint; error:PPGError); cdecl; external gliblib;
32
function g_thread_pool_get_max_threads(pool:PGThreadPool):gint; cdecl; external gliblib;
34
{ Get the number of threads assigned to that pool. This number doesn't
35
necessarily represent the number of working threads in that pool }
36
function g_thread_pool_get_num_threads(pool:PGThreadPool):guint; cdecl; external gliblib;
38
{ Get the number of unprocessed items in the pool }
39
function g_thread_pool_unprocessed(pool:PGThreadPool):guint; cdecl; external gliblib;
41
{ Free the pool, immediate means, that all unprocessed items in the queue
42
wont be processed, wait means, that the function doesn't return immediatly,
43
but after all threads in the pool are ready processing items. immediate
44
does however not mean, that threads are killed. }
45
procedure g_thread_pool_free(pool:PGThreadPool; immediate:gboolean; wait:gboolean); cdecl; external gliblib;
47
{ Set the maximal number of unused threads before threads will be stopped by
48
GLib, -1 means no limit }
49
procedure g_thread_pool_set_max_unused_threads(max_threads:gint); cdecl; external gliblib;
50
function g_thread_pool_get_max_unused_threads:gint; cdecl; external gliblib;
51
function g_thread_pool_get_num_unused_threads:guint; cdecl; external gliblib;
53
{ Stop all currently unused threads, but leave the limit untouched }
54
procedure g_thread_pool_stop_unused_threads; cdecl; external gliblib;
56
// included by glib2.pas