Poll and notify main thread if responses exists in queue
| 468 | |
| 469 | // Poll and notify main thread if responses exists in queue |
| 470 | void CAHttpClient::dispatchResponseCallbacks(float delta) |
| 471 | { |
| 472 | CAHttpResponse* response = NULL; |
| 473 | |
| 474 | pthread_mutex_lock(&s_responseQueueMutex); |
| 475 | if (!s_responseQueue.empty()) |
| 476 | { |
| 477 | response = s_responseQueue.front(); |
| 478 | s_responseQueue.popFront(); |
| 479 | } |
| 480 | pthread_mutex_unlock(&s_responseQueueMutex); |
| 481 | |
| 482 | if (response) |
| 483 | { |
| 484 | --_asyncRequestCount; |
| 485 | |
| 486 | CAHttpRequest *request = response->getHttpRequest(); |
| 487 | CC_RETURN_IF(request == NULL); |
| 488 | CAObject *pTarget = request->getTarget(); |
| 489 | SEL_HttpResponse pSelector = request->getSelector(); |
| 490 | |
| 491 | if (pTarget && pSelector) |
| 492 | { |
| 493 | (pTarget->*pSelector)(this, response); |
| 494 | } |
| 495 | |
| 496 | response->release(); |
| 497 | } |
| 498 | |
| 499 | if (0 == _asyncRequestCount) |
| 500 | { |
| 501 | CAScheduler::getScheduler()->pauseTarget(this); |
| 502 | } |
| 503 | |
| 504 | } |
| 505 | |
| 506 | |
| 507 | NS_CC_END |
nothing calls this directly
no test coverage detected