| 751 | |
| 752 | public: |
| 753 | static void Launch(TJobRequest* jobRequest, |
| 754 | TRemoteQueryProcessor* queryProc, IUserContext* userContext, |
| 755 | IMRCommandCompleteNotify* mrNotify) { |
| 756 | for (;;) { |
| 757 | IUserContext::EDataDistrState ds = userContext->UpdateDataDistrState(&jobRequest->HostId2Computer); |
| 758 | if (ds == IUserContext::DATA_UNAVAILABLE) { |
| 759 | CancelLaunch(mrNotify, userContext); |
| 760 | return; |
| 761 | } |
| 762 | if (ds != IUserContext::DATA_COMPLETE && jobRequest->Descr.ExecList.ysize() > FIRST_BLOCK_LEN * 2) { |
| 763 | TIntrusivePtr<TSplitMRExec> op = new TSplitMRExec(jobRequest, queryProc, mrNotify, userContext); |
| 764 | op->StartNextBlock(); |
| 765 | op->StartNextBlock(); |
| 766 | return; |
| 767 | } else { |
| 768 | bool chk = LaunchJobRequest(jobRequest, queryProc, userContext, mrNotify); |
| 769 | if (chk) |
| 770 | return; |
| 771 | // can not execute have to wait somehow |
| 772 | ThreadYield(); |
| 773 | } |
| 774 | } |
| 775 | } |
| 776 | }; |
| 777 | } |
nothing calls this directly
no test coverage detected