68 taken(original.taken.load()),
75 original.taken =
true;
88 static std::string
get_next_query(std::vector<JASS_anytime_query>&list,
size_t &starting_from)
90 auto total_queries = list.size();
91 while (starting_from < total_queries)
93 while (!list[starting_from].taken)
95 uint8_t expected =
false;
96 if (list[starting_from].taken.compare_exchange_strong(expected,
true))
97 return list[starting_from].query;
102 return std::string();
std::string query
The query.
Definition: JASS_anytime_query.h:32
JASS_anytime_query(const std::string &query)
Constructor.
Definition: JASS_anytime_query.h:52
static std::string get_next_query(std::vector< JASS_anytime_query > &list, size_t &starting_from)
Given a list of queries, return the next un-taken query.
Definition: JASS_anytime_query.h:88
A query within the anytime parallel search system.
Definition: JASS_anytime_query.h:28
std::atomic< uint8_t > taken
Has this query been "taken" by a thread and processed.
Definition: JASS_anytime_query.h:31
JASS_anytime_query()=delete
Constructor.
JASS_anytime_query(JASS_anytime_query &&original)
Move Constructor.
Definition: JASS_anytime_query.h:67