| 277 | } |
| 278 | |
| 279 | void GenerateSubtasks(const TVector<ui16>& src, TVector<TVector<ui16>>* subTasks) { |
| 280 | for (int i = 0; i < src.ysize(); ++i) { |
| 281 | TVector<ui16>& dst = subTasks->emplace_back(); |
| 282 | if (src[i] == N_GROUP_START) { |
| 283 | // embedded group |
| 284 | int depth = 1; |
| 285 | for (++i; i < src.ysize(); ++i) { |
| 286 | ui16 val = src[i]; |
| 287 | if (val == N_GROUP_END) { |
| 288 | if (--depth == 0) |
| 289 | break; |
| 290 | } else if (val == N_GROUP_START) |
| 291 | ++depth; |
| 292 | dst.push_back(src[i]); |
| 293 | } |
| 294 | Y_ASSERT(depth == 0); |
| 295 | } else |
| 296 | dst.push_back(src[i]); |
| 297 | } |
| 298 | } |
| 299 | |
| 300 | int SelectRandomHost(const TVector<ui16>& execPlan) { |
| 301 | size_t ptr = RandomNumber(execPlan.size()); |
no test coverage detected