aggiunto semafori iniziali

This commit is contained in:
Lorenzo Bianchi 2023-05-15 10:31:50 +02:00
parent 2ce624ab70
commit 5b21f06e04
2 changed files with 12 additions and 4 deletions

View File

@ -4,6 +4,7 @@
#include <server.h>
#include <structures.h>
#include <custom_sem.h>
int main(int argc, char *argv[]){
@ -12,7 +13,11 @@ int main(int argc, char *argv[]){
int shmBoardid = getShmid();
tile_t *board = shmServerAt(shmBoardid);
// si potrebbe mettere in server.c
int semid = getSemid(ftok(KEYFILE, 'k'), 2);
semOp(semid, 0, 2); // aperura semaforo per connessione dei 2 client
semOp(semid, 0, 0); // aspetto che si connettano i 2 client
return 0;

View File

@ -12,13 +12,16 @@ void semOp(int semid, short sem_num, short sem_op) {
}
}
int getSemid(){
int semid = semget(IPC_PRIVATE, 2, S_IRUSR | S_IWUSR);
int getSemid(key_t key, int size){
int semid = semget(key, size, S_IRUSR | S_IWUSR);
if (semid == -1) {
errExit("semget", "getSemid");
}
unsigned short val[] = {0, 0};
unsigned short val[size];
for (int i=0; i<size; i++) { // temporaneo
val[i] = 0;
}
union semun arg;
arg.array = val;