| 401 | |
| 402 | private: |
| 403 | void DoExecute() noexcept override { |
| 404 | THolder<TThread> This(this); |
| 405 | |
| 406 | if (Impl_->Namer) { |
| 407 | Impl_->Namer.SetCurrentThreadName(); |
| 408 | } |
| 409 | |
| 410 | { |
| 411 | TTsr tsr(Impl_->Parent_); |
| 412 | IObjectInQueue* obj; |
| 413 | |
| 414 | while ((obj = Impl_->WaitForJob()) != nullptr) { |
| 415 | if (Impl_->Catching) { |
| 416 | try { |
| 417 | try { |
| 418 | obj->Process(tsr); |
| 419 | } catch (...) { |
| 420 | Cdbg << Impl_->Name() << " " << CurrentExceptionMessage() << Endl; |
| 421 | } |
| 422 | } catch (...) { |
| 423 | // ¯\_(ツ)_/¯ |
| 424 | } |
| 425 | } else { |
| 426 | obj->Process(tsr); |
| 427 | } |
| 428 | } |
| 429 | } |
| 430 | } |
| 431 | |
| 432 | private: |
| 433 | TImpl* Impl_; |
nothing calls this directly
no test coverage detected