size_t offset;
bool message_is_complete = false;
+ rcu_read_lock();
client = get_client_from_socket(socket, state);
if (!client) {
/* Internal error, abort. */
}
}
end:
+ rcu_read_unlock();
return ret;
error_disconnect_client:
pthread_mutex_lock(&client->lock);
ret = notification_thread_client_disconnect(client, state);
pthread_mutex_unlock(&client->lock);
- return ret;
+ goto end;
}
/* Client ready to receive outgoing data. */
struct notification_client *client;
enum client_transmission_status transmission_status;
+ rcu_read_lock();
client = get_client_from_socket(socket, state);
if (!client) {
/* Internal error, abort. */
goto end;
}
end:
+ rcu_read_unlock();
return ret;
}