ftwin 0.8.10
napr_threadpool.h
Go to the documentation of this file.
1
6/*
7 * Copyright (C) 2007 François Pesce : francois.pesce (at) gmail (dot) com
8 *
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 */
21
22#ifndef NAPR_THREADPOOL_H
23#define NAPR_THREADPOOL_H
24
25#include <apr_pools.h>
26
31
41typedef apr_status_t (threadpool_process_data_callback_fn_t) (void *ctx, void *data);
42
56apr_status_t napr_threadpool_init(napr_threadpool_t **threadpool, void *ctx, unsigned long nb_thread,
57 threadpool_process_data_callback_fn_t *process_data, apr_pool_t *pool);
58
68apr_status_t napr_threadpool_add(napr_threadpool_t *threadpool, void *data);
69
78apr_status_t napr_threadpool_wait(napr_threadpool_t *threadpool);
79
91apr_status_t napr_threadpool_shutdown(napr_threadpool_t *threadpool);
92
93#endif /* NAPR_THREADPOOL_H */
apr_status_t napr_threadpool_shutdown(napr_threadpool_t *threadpool)
Shuts down the thread pool.
apr_status_t napr_threadpool_wait(napr_threadpool_t *threadpool)
Waits until all tasks currently in the queue have been processed.
struct napr_threadpool_t napr_threadpool_t
Opaque thread pool structure.
apr_status_t() threadpool_process_data_callback_fn_t(void *ctx, void *data)
The worker function executed by threads in the pool.
apr_status_t napr_threadpool_init(napr_threadpool_t **threadpool, void *ctx, unsigned long nb_thread, threadpool_process_data_callback_fn_t *process_data, apr_pool_t *pool)
Initializes a thread pool.
apr_status_t napr_threadpool_add(napr_threadpool_t *threadpool, void *data)
Adds a task (a data item) to the thread pool's processing queue.