Let's not fall into an infinite loop with blocked

requests



SVN revision: 73061
This commit is contained in:
Iván Briano 2012-06-29 22:04:34 +00:00
parent 8303ba5af4
commit c90e6ed6de
1 changed files with 6 additions and 4 deletions

View File

@ -432,6 +432,8 @@ _cserve2_requests_process(void)
Slave_Command ctype; Slave_Command ctype;
unsigned int max_workers; unsigned int max_workers;
Eina_List **idle, **working; Eina_List **idle, **working;
Eina_Inlist *itr;
Font_Request *req;
for (j = 0; _request_match[j].rtype != CSERVE2_REQ_LAST; j++) for (j = 0; _request_match[j].rtype != CSERVE2_REQ_LAST; j++)
{ {
@ -456,12 +458,12 @@ _cserve2_requests_process(void)
idle = &_workers[type].idle; idle = &_workers[type].idle;
working = &_workers[type].working; working = &_workers[type].working;
while (requests[rtype].waiting && EINA_INLIST_FOREACH_SAFE(requests[rtype].waiting, itr, req)
(eina_list_count(*working) < max_workers))
{ {
Slave_Worker *sw; Slave_Worker *sw;
Font_Request *req = EINA_INLIST_CONTAINER_GET(
requests[rtype].waiting, Font_Request); if (eina_list_count(*working) >= max_workers)
break;
if (req->locked) if (req->locked)
continue; continue;