2015-12-31 3 views
0

у меня есть что-то вроде этого:Программа завершающего после FCGX_InitRequest() называют

... 
int fcgiInit = FCGX_Init(); 
if(fcgiInit != 0) 
{ 
    return 1; 
} 

int socket = FCGX_OpenSocket(":8000", 100); 
if(socket == -1) 
{ 
    return 2; 
} 

//point A 
FCGX_Request* request = new FCGX_Request; 
if(FCGX_InitRequest(request, socket, FCGI_FAIL_ACCEPT_ON_INTR) != 0) 
{ 
    return 3; 
} 
... 
//point B 

Он работает хорошо, но когда я пытаюсь запустить его с кодом между точками А и В в другом потоке моя программа завершается со статусом -1 после FCGX_InitRequest() звонок.

Что не так, и я могу сделать это правильно?

PS. Надеюсь, что в этом году я получу ответ;)

ответ

0

FCGX_Init() просто нужно называть начало каждого потока. Это означает:

... 
int socket = FCGX_OpenSocket(":8000", 100); 
... 
//point A 
int fcgiInit = FCGX_Init(); 
... 
if(FCGX_InitRequest(request, socket, FCGI_FAIL_ACCEPT_ON_INTR) != 0) 
... 
//point B 

 Смежные вопросы

  • Нет связанных вопросов^_^