@param p Thread pool
@param q Process queue
@param func Function run by the thread pool
@param arg Data for use by func()
@param nonblock Non-blocking flag (see description)
@return 0 on success
-1 on failure
The @p nonblock parameter can take one of the following values:
0 => block if input queue is full
+1 => don't block if input queue is full, but do not add task
-1 => add task regardless of whether queue is full (over-size)
If @p nonblock is +1 and the queue is full, -1 will be returned and
errno is set to EAGAIN.
@param p Thread pool @param q Process queue @param func Function run by the thread pool @param arg Data for use by func() @param nonblock Non-blocking flag (see description) @return 0 on success -1 on failure
The @p nonblock parameter can take one of the following values: 0 => block if input queue is full +1 => don't block if input queue is full, but do not add task -1 => add task regardless of whether queue is full (over-size)
If @p nonblock is +1 and the queue is full, -1 will be returned and errno is set to EAGAIN.