2012-08-11 368 views
1

一個C++ 11線程基於模塊我想寫的Apache模塊C++ 11(GCC 4.7),並配置它這樣的:寫作阿帕奇

  • 自定義初始化函數中我的代碼在服務器啓動時被調用一次。
  • 請求處理工作人員由apache產生,因爲pthreads在同一個進程中。 (不分叉進程)
  • HTTP請求由來自工作線程的函數調用處理,該工作線程調用我在代碼中編寫的阻塞函數。

是這一切成爲可能?或者Apache不是這樣設計的?如果可能的話,如何配置它以及如何構建和附加模塊?

回答

1

這是因爲我寫的Apache模塊很長一段時間,但我不認爲一個模塊可以控制孩子是否催生了新的叉子或過程,我認爲這是一個服務器範圍的設置。

否則,這一切都是非常可能的。 Apache提供了一些鉤子,您可以在服務器運行期間的不同時間調用模塊的代碼。

回到Apache 1.3.x的日子裏,我曾經使用Writing Apache Modules with Perl and C這本書,它主要關注使用Perl,但是在C API上有足夠的信息來弄明白。 developer docs for Apache 2.4顯示如何使用掛鉤和控制請求處理。

+0

我大部分工作。我已經得出結論,使用MPM工作模塊,理論上可以對其進行配置,以便使用具有多個線程的單個子進程。儘管如此,還沒有測試過。 – 2012-08-13 22:44:35