| 941 | } |
| 942 | |
| 943 | void SearchWorker::run() |
| 944 | { |
| 945 | Pos origin = {0,0}; |
| 946 | env.init(master->mc, master->large, master->condtree); |
| 947 | |
| 948 | switch (master->searchtype) |
| 949 | { |
| 950 | case SEARCH_LIST: |
| 951 | while (!*env.stop && getNextItem()) |
| 952 | { // seed = slist[..] |
| 953 | uint64_t ie = idx+scnt < len ? idx+scnt : len; |
| 954 | for (uint64_t i = idx; i < ie; i++) |
| 955 | { |
| 956 | seed = slist[i]; |
| 957 | env.setSeed(seed); |
| 958 | if (testTreeAt(origin, &env, PASS_FULL_64, nullptr) == COND_OK) |
| 959 | { |
| 960 | if (!*env.stop) |
| 961 | emit result(seed); |
| 962 | } |
| 963 | } |
| 964 | //if (ie == len) // done |
| 965 | // break; |
| 966 | } |
| 967 | break; |
| 968 | |
| 969 | case SEARCH_48ONLY: |
| 970 | while (!*env.stop && getNextItem()) |
| 971 | { |
| 972 | if (slist) |
| 973 | { |
| 974 | uint64_t ie = idx+scnt < len ? idx+scnt : len; |
| 975 | for (uint64_t i = idx; i < ie; i++) |
| 976 | { |
| 977 | seed = slist[i]; |
| 978 | env.setSeed(seed); |
| 979 | if (testTreeAt(origin, &env, PASS_FULL_48, nullptr) != COND_FAILED) |
| 980 | { |
| 981 | if (!*env.stop) |
| 982 | emit result(seed); |
| 983 | } |
| 984 | } |
| 985 | } |
| 986 | else |
| 987 | { |
| 988 | seed = sstart; |
| 989 | for (int i = 0; i < scnt; i++) |
| 990 | { |
| 991 | env.setSeed(seed); |
| 992 | if (testTreeAt(origin, &env, PASS_FULL_48, nullptr) != COND_FAILED) |
| 993 | { |
| 994 | if (!*env.stop) |
| 995 | emit result(seed); |
| 996 | } |
| 997 | |
| 998 | if (seed >= MASK48) |
| 999 | { // done |
| 1000 | break; |
nothing calls this directly
no test coverage detected