~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to packages/extra/gtk2/glib/gthreadpool.inc

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2005-05-30 11:59:10 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050530115910-x5pbzm4qqta4i94h
Tags: 2.0.0-2
debian/fp-compiler.postinst.in: forgot to reapply the patch that
correctly creates the slave link to pc(1).  (Closes: #310907)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// included by glib2.pas
 
2
 
 
3
type
 
4
{ Thread Pools }
 
5
 
 
6
{ The real GThreadPool is bigger, so you may only create a thread
 
7
   pool with the constructor function  }
 
8
   PGThreadPool = ^TGThreadPool;
 
9
   TGThreadPool = record
 
10
        func : TGFunc;
 
11
        user_data : gpointer;
 
12
        exclusive : gboolean;
 
13
     end;
 
14
 
 
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;
 
21
 
 
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
 
25
   returns immediatly  }
 
26
procedure g_thread_pool_push(pool:PGThreadPool; data:gpointer; error:PPGError); cdecl; external gliblib;
 
27
 
 
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;
 
33
 
 
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;
 
37
 
 
38
{ Get the number of unprocessed items in the pool  }
 
39
function g_thread_pool_unprocessed(pool:PGThreadPool):guint; cdecl; external gliblib;
 
40
 
 
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;
 
46
 
 
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;
 
52
 
 
53
{ Stop all currently unused threads, but leave the limit untouched  }
 
54
procedure g_thread_pool_stop_unused_threads; cdecl; external gliblib;
 
55
 
 
56
// included by glib2.pas
 
57