rcu_read_lock();
cds_lfht_for_each_entry(ksess->consumer->socks->ht,
&iter.iter, socket, node.node) {
- /* Code flow error */
- assert(socket->fd);
-
pthread_mutex_lock(socket->lock);
ret = kernel_consumer_send_channel_stream(socket,
channel, ksess,
lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
consumer_data->metadata_fd =
lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
- if (consumer_data->cmd_sock < 0 || consumer_data->metadata_fd < 0) {
+ if (consumer_data->cmd_sock < 0
+ || consumer_data->metadata_fd < 0) {
PERROR("consumer connect cmd socket");
/* On error, signal condition and quit. */
signal_consumer_condition(consumer_data, -1);
goto error;
}
- consumer_data->metadata_sock.fd = &consumer_data->metadata_fd;
+ consumer_data->metadata_sock.fd_ptr = &consumer_data->metadata_fd;
/* Create metadata socket lock. */
consumer_data->metadata_sock.lock = zmalloc(sizeof(pthread_mutex_t));
if (consumer_data->metadata_sock.lock == NULL) {
error:
/*
* We lock here because we are about to close the sockets and some other
- * thread might be using them so wait before we are exclusive which will
- * abort all other consumer command by other threads.
+ * thread might be using them so get exclusive access which will abort all
+ * other consumer command by other threads.
*/
pthread_mutex_lock(&consumer_data->lock);
}
consumer_data->cmd_sock = -1;
}
- if (*consumer_data->metadata_sock.fd >= 0) {
- ret = close(*consumer_data->metadata_sock.fd);
+ if (*consumer_data->metadata_sock.fd_ptr >= 0) {
+ ret = close(*consumer_data->metadata_sock.fd_ptr);
if (ret) {
PERROR("close");
}
unlink(consumer_data->cmd_unix_sock_path);
consumer_data->pid = 0;
pthread_mutex_unlock(&consumer_data->lock);
+
/* Cleanup metadata socket mutex. */
pthread_mutex_destroy(consumer_data->metadata_sock.lock);
free(consumer_data->metadata_sock.lock);
/* Initialize communication library */
lttcomm_init();
+ /* This is to get the TCP timeout value. */
+ lttcomm_inet_init();
/* Create thread to manage the client socket */
ret = pthread_create(&ht_cleanup_thread, NULL,