28 parsec_atomic_lock(&data->lock);
29 int version = data->device_copies[0]->version;
31 parsec_data_copy_t* device_copy =
nullptr;
32 for (
int i = 1; i < parsec_nb_devices; ++i) {
33 if (data->device_copies[i] ==
nullptr)
continue;
34 if (data->device_copies[i]->version >= version) {
36 version = data->device_copies[i]->version;
37 device_copy = data->device_copies[i];
42 parsec_atomic_fetch_add_int32(&device_copy->readers, 1);
44 parsec_atomic_unlock(&data->lock);
45 return {device, device_copy};