gcc 4.7.2
c89
apr utility 1.4
你好,
我正在使用线程池来启动线程。但是,我看不到任何允许我等待线程加入的 apr 函数。
代码 sippet,删除了所有错误检查和非必要部分:
int main(void)
{
/* Initialize apr internal structures */
apr_initialize();
/* Create memory pool */
rv = apr_pool_create(&mem_pool, NULL);
/* Create thread pool */
memset(&buf, 0, sizeof buf);
rv = apr_thread_pool_create(&thd_pool,
init_threads,
max_threads,
mem_pool);
/* Process the number of jobs */
#define NUMBER_JOBS 1
for(i = 0; i < NUMBER_JOBS; i++) {
rv = apr_thread_pool_schedule(thd_pool,
timeout_duration,
(void*)channel,
(apr_interval_time_t)flash_timeout,
NULL);
}
/*
* Join all threads here
*/
/* Destroy resources */
apr_thread_pool_destroy(thd_pool);
apr_pool_destroy(mem_pool);
apr_terminate();
return 0;
error:
apr_thread_pool_destroy(thd_pool);
apr_pool_destroy(mem_pool);
apr_terminate();
return 1;
}
void* timeout_duration(apr_thread_t *thd, void *data)
{
channel_t *channel = (channel_t*)data;
LOG_DEBUG("Channel timeout notification [ %zu ]", channel->id);
}
我看不到任何加入线程的 apr utity 函数。
但是,我确实找到了这个函数apr_thread_join(apr_status_t *retval, apr_thread_t *thd)
但是,它需要 aapr_thread_t
作为参数。
函数 timeout_duration 需要 aapr_thread_t
但是如果我需要使用它来加入,我该如何设法将其传回?
只是一个旁注问题。是否有任何使用 apr 的示例项目,我可以参考。文档非常有限。
非常感谢您的任何建议,