module Bindings.APR.Thread.Pool where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.APR
import Bindings.APR.ErrNo
import Bindings.APR.Pools
import Bindings.APR.Thread.Proc
import Bindings.APR.Time
data C'apr_thread_pool_t = C'apr_thread_pool_t
c'APR_THREAD_TASK_PRIORITY_LOWEST = 0
c'APR_THREAD_TASK_PRIORITY_LOWEST :: (Num a) => a
c'APR_THREAD_TASK_PRIORITY_LOW = 63
c'APR_THREAD_TASK_PRIORITY_LOW :: (Num a) => a
c'APR_THREAD_TASK_PRIORITY_NORMAL = 127
c'APR_THREAD_TASK_PRIORITY_NORMAL :: (Num a) => a
c'APR_THREAD_TASK_PRIORITY_HIGH = 191
c'APR_THREAD_TASK_PRIORITY_HIGH :: (Num a) => a
c'APR_THREAD_TASK_PRIORITY_HIGHEST = 255
c'APR_THREAD_TASK_PRIORITY_HIGHEST :: (Num a) => a
foreign import ccall "apr_thread_pool_create" c'apr_thread_pool_create
:: Ptr (Ptr C'apr_thread_pool_t) -> C'apr_size_t -> C'apr_size_t -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_create" p'apr_thread_pool_create
:: FunPtr (Ptr (Ptr C'apr_thread_pool_t) -> C'apr_size_t -> C'apr_size_t -> Ptr C'apr_pool_t -> IO C'apr_status_t)
foreign import ccall "apr_thread_pool_destroy" c'apr_thread_pool_destroy
:: Ptr C'apr_thread_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_destroy" p'apr_thread_pool_destroy
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_status_t)
foreign import ccall "apr_thread_pool_push" c'apr_thread_pool_push
:: Ptr C'apr_thread_pool_t -> C'apr_thread_start_t -> Ptr () -> C'apr_byte_t -> Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_push" p'apr_thread_pool_push
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_thread_start_t -> Ptr () -> C'apr_byte_t -> Ptr () -> IO C'apr_status_t)
foreign import ccall "apr_thread_pool_schedule" c'apr_thread_pool_schedule
:: Ptr C'apr_thread_pool_t -> C'apr_thread_start_t -> Ptr () -> C'apr_interval_time_t -> Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_schedule" p'apr_thread_pool_schedule
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_thread_start_t -> Ptr () -> C'apr_interval_time_t -> Ptr () -> IO C'apr_status_t)
foreign import ccall "apr_thread_pool_top" c'apr_thread_pool_top
:: Ptr C'apr_thread_pool_t -> C'apr_thread_start_t -> Ptr () -> C'apr_byte_t -> Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_top" p'apr_thread_pool_top
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_thread_start_t -> Ptr () -> C'apr_byte_t -> Ptr () -> IO C'apr_status_t)
foreign import ccall "apr_thread_pool_tasks_cancel" c'apr_thread_pool_tasks_cancel
:: Ptr C'apr_thread_pool_t -> Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_tasks_cancel" p'apr_thread_pool_tasks_cancel
:: FunPtr (Ptr C'apr_thread_pool_t -> Ptr () -> IO C'apr_status_t)
foreign import ccall "apr_thread_pool_tasks_count" c'apr_thread_pool_tasks_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_tasks_count" p'apr_thread_pool_tasks_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_scheduled_tasks_count" c'apr_thread_pool_scheduled_tasks_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_scheduled_tasks_count" p'apr_thread_pool_scheduled_tasks_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_threads_count" c'apr_thread_pool_threads_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_threads_count" p'apr_thread_pool_threads_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_busy_count" c'apr_thread_pool_busy_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_busy_count" p'apr_thread_pool_busy_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_idle_count" c'apr_thread_pool_idle_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_idle_count" p'apr_thread_pool_idle_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_idle_max_set" c'apr_thread_pool_idle_max_set
:: Ptr C'apr_thread_pool_t -> C'apr_size_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_idle_max_set" p'apr_thread_pool_idle_max_set
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_size_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_tasks_run_count" c'apr_thread_pool_tasks_run_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_tasks_run_count" p'apr_thread_pool_tasks_run_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_tasks_high_count" c'apr_thread_pool_tasks_high_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_tasks_high_count" p'apr_thread_pool_tasks_high_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_threads_high_count" c'apr_thread_pool_threads_high_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_threads_high_count" p'apr_thread_pool_threads_high_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_threads_idle_timeout_count" c'apr_thread_pool_threads_idle_timeout_count
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_threads_idle_timeout_count" p'apr_thread_pool_threads_idle_timeout_count
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_idle_max_get" c'apr_thread_pool_idle_max_get
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_idle_max_get" p'apr_thread_pool_idle_max_get
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_thread_max_set" c'apr_thread_pool_thread_max_set
:: Ptr C'apr_thread_pool_t -> C'apr_size_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_thread_max_set" p'apr_thread_pool_thread_max_set
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_size_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_idle_wait_set" c'apr_thread_pool_idle_wait_set
:: Ptr C'apr_thread_pool_t -> C'apr_interval_time_t -> IO C'apr_interval_time_t
foreign import ccall "&apr_thread_pool_idle_wait_set" p'apr_thread_pool_idle_wait_set
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_interval_time_t -> IO C'apr_interval_time_t)
foreign import ccall "apr_thread_pool_idle_wait_get" c'apr_thread_pool_idle_wait_get
:: Ptr C'apr_thread_pool_t -> IO C'apr_interval_time_t
foreign import ccall "&apr_thread_pool_idle_wait_get" p'apr_thread_pool_idle_wait_get
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_interval_time_t)
foreign import ccall "apr_thread_pool_thread_max_get" c'apr_thread_pool_thread_max_get
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_thread_max_get" p'apr_thread_pool_thread_max_get
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_threshold_set" c'apr_thread_pool_threshold_set
:: Ptr C'apr_thread_pool_t -> C'apr_size_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_threshold_set" p'apr_thread_pool_threshold_set
:: FunPtr (Ptr C'apr_thread_pool_t -> C'apr_size_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_threshold_get" c'apr_thread_pool_threshold_get
:: Ptr C'apr_thread_pool_t -> IO C'apr_size_t
foreign import ccall "&apr_thread_pool_threshold_get" p'apr_thread_pool_threshold_get
:: FunPtr (Ptr C'apr_thread_pool_t -> IO C'apr_size_t)
foreign import ccall "apr_thread_pool_task_owner_get" c'apr_thread_pool_task_owner_get
:: Ptr C'apr_thread_t -> Ptr (Ptr ()) -> IO C'apr_status_t
foreign import ccall "&apr_thread_pool_task_owner_get" p'apr_thread_pool_task_owner_get
:: FunPtr (Ptr C'apr_thread_t -> Ptr (Ptr ()) -> IO C'apr_status_t)