MXS-3023: Fix ID generator overflow
The result must always be non-negative.
This commit is contained in:
@ -1064,7 +1064,7 @@ std::unique_ptr<json_t> RoutingWorker::get_qc_stats_as_json(const char* zHost)
|
|||||||
// static
|
// static
|
||||||
RoutingWorker* RoutingWorker::pick_worker()
|
RoutingWorker* RoutingWorker::pick_worker()
|
||||||
{
|
{
|
||||||
static int id_generator = 0;
|
static uint32_t id_generator = 0;
|
||||||
int id = this_unit.id_min_worker
|
int id = this_unit.id_min_worker
|
||||||
+ (mxb::atomic::add(&id_generator, 1, mxb::atomic::RELAXED) % this_unit.nWorkers);
|
+ (mxb::atomic::add(&id_generator, 1, mxb::atomic::RELAXED) % this_unit.nWorkers);
|
||||||
return get(id);
|
return get(id);
|
||||||
|
Reference in New Issue
Block a user