1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
Semaphore maSemaphore = Semaphore();
maSemaphore.P();
cout << int_to_str(getpid()) << " j'ai la main" << endl;
ofstream f("test.txt" , ios_base::out | ios_base::app);
f << int_to_str(getpid()) << " - j'écris" << endl;
sleep(10);
f << int_to_str(getpid()) << " - je réécris" << endl;
f.close();
maSemaphore.V();
// P()
void Semaphore::P(){
struct sembuf buffer = {0, -1, 0};//numéro,opération,flag 0,-1,0
semop(_idSem, &buffer , 1);
}
// V()
void Semaphore::V(){
struct sembuf buffer = {0, 1, 0};
semop(_idSem, &buffer, 1);
} |
Partager