risolto sqdmfjsqlmkjfmslqjfjsqlfjsqlfjdl

This commit is contained in:
Lorenzo Bianchi 2023-05-22 09:26:39 +02:00
parent 5c06be55fb
commit b9585833f6
5 changed files with 27 additions and 5 deletions

View File

@ -56,6 +56,8 @@ void sigHandlerClient(int sig) {
//TODO: mettere main ma non l'ho fatto per makefile
int main(int argc, char *argv[]){
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
checkClientinput(argc, argv);
// SIGNAL

View File

@ -8,6 +8,7 @@
#include <sys/msg.h>
#include <sys/sem.h>
#include <string.h>
#include <unistd.h>
#include <server.h>
#include <structures.h>
@ -20,6 +21,8 @@
#include <custom_sig.h>
int main(int argc, char *argv[]){
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
// CHECK_INPUT
input_server_t input = check_input(argc, argv);

View File

@ -1,11 +1,16 @@
#include <sys/msg.h>
#include <errno.h>
#include <custom_msgq.h>
#include <errExit.h>
void msgRcv(void *msgp, size_t size, long mtype) {
if (msgrcv(_MSGQID, msgp, size, mtype, 0) == -1) {
perror("test");
int res;
do {
res = msgrcv(_MSGQID, msgp, size, mtype, 0);
} while (errno == EINTR);
if (res == -1) {
errExitMsg("msgrcv");
}
}
@ -27,7 +32,12 @@ void rcvGame_end(game_end_t *game) {
void msgSnd(void *msgp, size_t size) {
if (msgsnd(_MSGQID, msgp, size, 0) == -1) {
int res;
do {
res = msgsnd(_MSGQID, msgp, size, 0);
} while (errno == EINTR);
if (res == -1) {
errExitMsg("msgsnd");
}
}

View File

@ -1,5 +1,6 @@
#include <sys/sem.h>
#include <sys/stat.h>
#include <errno.h>
#include <custom_sem.h>
#include <structures.h>
@ -8,8 +9,13 @@
void semOp(int semid, short sem_num, short sem_op) {
struct sembuf sop = {.sem_num = sem_num, .sem_op = sem_op, .sem_flg = 0};
if (semop(semid, &sop, 1) == -1) {
errExit("semop", "semOp");
int res;
do {
res = semop(semid, &sop, 1);
} while ((errno == EINTR));
if (res == -1) {
errExitMsg("semOp");
}
}

View File

@ -98,6 +98,7 @@ void sigHandlerServer(int sig) {
void setServerSignalHandler() {
sigset_t mySet;
sigfillset(&mySet);
sigdelset(&mySet, SIGINT);
sigdelset(&mySet, SIGTERM);
sigdelset(&mySet, SIGHUP);