Здравствуйте. Сделал по примеру из webkit многопоточный FastCGI:
#include <iostream>
using namespace std;#include <stdio.h>
#include <windows.h>
#include "aolexp.h"
#include "fcgi_config.h"
#include "fcgiapp.h"
const int threadscount = 10;
CRITICAL_SECTION acceptrsection;
int __stdcall ServerThread(void*){
int acceptrresult;
FCGX_Request request;
FCGX_InitRequest(&request, 0, 0);
for(;;){
EnterCriticalSection(&acceptrsection);
acceptrresult = FCGX_Accept_r(&request);
LeaveCriticalSection(&acceptrsection);
if(acceptrresult<0)
break;
FCGX_FPrintF(request.out,
"Content-type: text/html\r\n"
"\r\n"
"<title>FastCGI Hello! (multi-threaded C, fcgiapp library)</title>"
"<h1>FastCGI Hello! (multi-threaded C, fcgiapp library)</h1>");
FCGX_Finish_r(&request);
}
return 0;
}
int main(){
InitializeCriticalSection(&acceptrsection);
FCGX_Init();
DWORD tid;
for(int i=1; i<threadscount; i++)
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ServerThread, NULL, 0, &tid);
ServerThread(NULL);
return 0;
}
Потом настроил в конфигах сервера
fastcgi.server = ( ".e" =>
( "localhost" =>
(
"socket" => "TMP/exe-aols.socket",
"bin-path" => "/cygdrive/f/aols/aols/aols.exe"
)
)
)
Проблема в том, что программа вообще не "спаунится" сервером. Т.е. он что-то там делает:
2010-03-31 22:56:35: (log.c.166) server started
2010-03-31 22:56:35: (mod_fastcgi.c.1367) --- fastcgi spawning local
proc: /cygdrive/f/aols/aols/aols.exe
port: 0
socket TMP/exe-aols.socket
max-procs: 4
2010-03-31 22:56:35: (mod_fastcgi.c.1391) --- fastcgi spawning
port: 0
socket TMP/exe-aols.socket
current: 0 / 4
2010-03-31 22:56:35: (mod_fastcgi.c.1391) --- fastcgi spawning
port: 0
socket TMP/exe-aols.socket
current: 1 / 4
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
unknown listenType (0)
2010-03-31 22:56:35: (mod_fastcgi.c.1391) --- fastcgi spawning
port: 0
socket TMP/exe-aols.socket
current: 2 / 4
unknown listenType (0)
2010-03-31 22:56:35: (mod_fastcgi.c.1391) --- fastcgi spawning
port: 0
socket TMP/exe-aols.socket
current: 3 / 4
unknown listenType (0)
unknown listenType (0)
Но программы нет в списке процессов и соответственно на запросы она не отвечает... Может кто знает в чем проблема...