| 379 | _logoContext.url = _logoUrl; |
| 380 | _logoContext.event = &_stateDone; |
| 381 | _logoContext.proxy = _proxy.GetLength() > 0 ? (const char*)_proxy : nullptr; |
| 382 | _logoContext.maxSize = Poseidon::NetworkSquadFileMaxSize; |
| 383 | _logoContext.done.store(false, std::memory_order_release); |
| 384 | DownloadToFileOverlapped(&_logoContext); |
| 385 | // download result ignored? |
| 386 | } |
| 387 | else |
| 388 | { |
| 389 | _state = AllDone; |
| 390 | // _stateDone is still Set |
| 391 | } |
| 392 | } |
| 393 | |
| 394 | bool CheckSquadObject::IsDone() |
| 395 | { |
| 396 | #ifdef _WIN32 |
| 397 | if (!_stateDone.TryWait()) |
| 398 | #else |
| 399 | if ((_state == DownloadingSquad && !_squadContext.done.load(std::memory_order_acquire)) || |
| 400 | (_state == DownloadingLogo && !_logoContext.done.load(std::memory_order_acquire))) |
| 401 | #endif |
| 402 | { |
| 403 | return false; |
no test coverage detected