我正在编写一个Apache 2.4模块,并且正在使用MPM worker。
我是否可以使用从该线程的上下文创建新线程时调用的钩子?我需要做一些每线程初始化。
(更一般地说,是否在某处记录了一个全面的钩子列表?)
答案 0 :(得分:0)
'no'中的简短回答,没有这样的钩子用于工作者MPM的线程初始化。 Apache设计人员建议模块尽可能“与MPM无关”。关键概念是模块必须适合输入过滤器 - 内容生成 - 输出过滤器体系结构独立于实际管理工作负载的MPM。
当然,在某些情况下,您需要知道您在哪个环境中努力工作
我们正在研究类似的问题。当请求进入时会触发线程,它们会运行ap_hook_handler中定义的钩子,并且据我所知,这是您的线程必须获得访问权限或分配为请求提供服务所需的资源的时间。
我被告知mod_rivet有一个有趣的解决方案,创建自己的线程池,让他们与运行请求处理程序的Apache线程交换数据。