| 1362 | } |
| 1363 | |
| 1364 | SC::Result SC::HttpClientOperation::enqueueEvent(const HttpClientOperationEvent& event) |
| 1365 | { |
| 1366 | eventMutex.lock(); |
| 1367 | while (eventCount >= eventQueue.sizeInElements()) |
| 1368 | { |
| 1369 | eventCV.wait(eventMutex); |
| 1370 | } |
| 1371 | eventQueue[eventTail] = event; |
| 1372 | eventTail = (eventTail + 1) % eventQueue.sizeInElements(); |
| 1373 | eventCount += 1; |
| 1374 | eventCV.signal(); |
| 1375 | eventMutex.unlock(); |
| 1376 | |
| 1377 | if (notifier != nullptr) |
| 1378 | { |
| 1379 | notifier->notifyHttpClientOperation(*this); |
| 1380 | } |
| 1381 | return Result(true); |
| 1382 | } |
| 1383 | |
| 1384 | bool SC::HttpClientOperation::dequeueEvent(HttpClientOperationEvent& event) |
| 1385 | { |