Method

GLibThreadPoolset_max_threads

Declaration

gboolean
g_thread_pool_set_max_threads (
  GThreadPool* pool,
  gint max_threads,
  GError** error
)

Description

Sets the maximal allowed number of threads for pool. A value of -1 means that the maximal number of threads is unlimited. If pool is an exclusive thread pool, setting the maximal number of threads to -1 is not allowed.

Setting max_threads to 0 means stopping all work for pool. It is effectively frozen until max_threads is set to a non-zero value again.

A thread is never terminated while calling func, as supplied by g_thread_pool_new(). Instead the maximal number of threads only has effect for the allocation of new threads in g_thread_pool_push(). A new thread is allocated, whenever the number of currently running threads in pool is smaller than the maximal number.

error can be NULL to ignore errors, or non-NULL to report errors. An error can only occur when a new thread couldn’t be created.

Before version 2.32, this function did not return a success status.

Parameters

max_threads

Type: gint

A new maximal number of threads for pool, or -1 for unlimited.

error

Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will left initialized to NULL by the method if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: gboolean

TRUE on success, FALSE if an error occurred.