aggiunto semafori iniziali
This commit is contained in:
parent
2ce624ab70
commit
5b21f06e04
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue