sig
  type t
  external make :
    int32 ->
    int32 ->
    int64 -> TimeUnit.t -> RejectedExecutionHandler.t -> ThreadPoolExecutor.t
    = "ocamljava_threadpoolexecutor_make"
  external await_termination :
    ThreadPoolExecutor.t -> int64 -> TimeUnit.t -> bool
    = "ocamljava_threadpoolexecutor_await_termination"
  external get_active_count : ThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_active_count"
  external get_completed_task_count : ThreadPoolExecutor.t -> int64
    = "ocamljava_threadpoolexecutor_get_completed_task_count"
  external get_core_pool_size : ThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_core_pool_size"
  external get_keep_alive_time : ThreadPoolExecutor.t -> TimeUnit.t -> int64
    = "ocamljava_threadpoolexecutor_get_keep_alive_time"
  external get_largest_pool_size : ThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_largest_pool_size"
  external get_maximum_pool_size : ThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_maximum_pool_size"
  external get_pool_size : ThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_pool_size"
  external get_rejected_execution_handler :
    ThreadPoolExecutor.t -> RejectedExecutionHandler.t
    = "ocamljava_threadpoolexecutor_get_rejected_execution_handler"
  external get_task_count : ThreadPoolExecutor.t -> int64
    = "ocamljava_threadpoolexecutor_get_task_count"
  external invoke_all :
    ThreadPoolExecutor.t -> (unit -> 'a) list -> 'Future.t list
    = "ocamljava_threadpoolexecutor_invoke_all"
  external invoke_all_time :
    ThreadPoolExecutor.t ->
    (unit -> 'a) list -> int64 -> TimeUnit.t -> 'Future.t list
    = "ocamljava_threadpoolexecutor_invoke_all_time"
  external invoke_any : ThreadPoolExecutor.t -> (unit -> 'a) list -> 'a
    = "ocamljava_threadpoolexecutor_invoke_any"
  external invoke_any_time :
    ThreadPoolExecutor.t -> (unit -> 'a) list -> int64 -> TimeUnit.t -> 'a
    = "ocamljava_threadpoolexecutor_invoke_any_time"
  external is_shutdown : ThreadPoolExecutor.t -> bool
    = "ocamljava_threadpoolexecutor_is_shutdown"
  external is_terminated : ThreadPoolExecutor.t -> bool
    = "ocamljava_threadpoolexecutor_is_terminated"
  external is_terminating : ThreadPoolExecutor.t -> bool
    = "ocamljava_threadpoolexecutor_is_terminating"
  external set_core_pool_size : ThreadPoolExecutor.t -> int32 -> unit
    = "ocamljava_threadpoolexecutor_set_core_pool_size"
  external set_keep_alive_time :
    ThreadPoolExecutor.t -> int64 -> TimeUnit.t -> unit
    = "ocamljava_threadpoolexecutor_set_keep_alive_time"
  external set_maximum_pool_size : ThreadPoolExecutor.t -> int32 -> unit
    = "ocamljava_threadpoolexecutor_set_maximum_pool_size"
  external set_rejected_execution_handler :
    ThreadPoolExecutor.t -> RejectedExecutionHandler.t -> unit
    = "ocamljava_threadpoolexecutor_set_rejected_execution_handler"
  external shutdown : ThreadPoolExecutor.t -> unit
    = "ocamljava_threadpoolexecutor_shutdown"
  external shutdown_now : ThreadPoolExecutor.t -> 'Future.t list
    = "ocamljava_threadpoolexecutor_shutdown_now"
  external submit : ThreadPoolExecutor.t -> ('-> 'b) -> '-> 'Future.t
    = "ocamljava_threadpoolexecutor_submit"
end