Skip to content
Snippets Groups Projects
Commit 9555d8ac authored by Ruben Otto's avatar Ruben Otto :crab:
Browse files

feat: terminate clients if pipe is closed

parent 9a03df3f
Branches
No related tags found
No related merge requests found
#include "../../../common/include/measurement.h"
#include "../../../common/include/userspace_comm.h"
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
......@@ -44,7 +45,13 @@ int main(int argc, char *argv[]) {
.id = atoi(argv[1]),
};
send_userspace_message(&userspace_send_handle, measurement);
if (send_userspace_message(&userspace_send_handle, measurement) == -1) {
if (errno == EIDRM || errno == EINVAL) {
printf("Message queue got closed\n");
break;
}
perror("Failed to send message");
}
usleep(sleep_ms * 1000);
}
......
#include "../../../common/include/measurement.h"
#include "../../../common/include/userspace_comm.h"
#include <errno.h>
#include <fcntl.h>
#include <math.h>
#include <stdio.h>
......@@ -31,7 +32,13 @@ int main(int argc, char *argv[]) {
.id = atoi(argv[1]),
};
send_userspace_message(&userspace_send_handle, measurement);
if (send_userspace_message(&userspace_send_handle, measurement) == -1) {
if (errno == EIDRM || errno == EINVAL) {
printf("Message queue got closed\n");
break;
}
perror("Failed to send message");
}
step += 0.01;
if (step >= 2.0 * M_PI) {
......
......@@ -27,8 +27,11 @@ int send_userspace_message(userspace_send_handle_t *handle,
.measurement = measurement,
};
msgsnd(handle->msg_queue_id, &message_queue_message, sizeof(measurement_t),
int read = msgsnd(handle->msg_queue_id, &message_queue_message, sizeof(measurement_t),
0);
if (read == -1) {
return -1;
}
return 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment