Mám 2 procesy, v každom beží nekonečný cyklus, v jednom rýchlejšie, v druhom pomalšie. Ten pomalší raz za nejaký čas chce, aby mu ten rýchlejší poslal nejaké dáta. Ale musí mu nejako oznámiť, že dáta chce, ten rýchlejší to v každom svojom cykle bude kontrolovať. Takže by som potreboval nejaké návestie, ktoré by žiadateľ (pomalší) nastavil keď bude chcieť dáta, druhý zistí že ich má poslať a pošle. Napadlo ma, že by som ako toto návestie mohol použiť semafor a zisťovať či je nenulový a to by signalizovalo požiadavku na dáta. Lenže operácia zistenia stavu semaforu musí byť neblokovaná, aby program nezastal a nečakal, kým ho žiadateľ nenastaví.
Otázka teda znie, či je takáto operácia nad semaforom možná, prípadne by som poprosil radu pomocou akej funkcie sa dá vykonať.
Alebo môžte navrhnúť iný spôsob ako sa takáto úloha dá vyriešiť.
ďakujem
aero
zistenie stavu semaforu
Moderátori: psichac, Moderátori
-
- Stály člen
- Príspevky: 354
- Dátum registrácie: 26 Okt 2009, 00:00
- Vek: 32
- Kontaktovať používateľa:
-
- Pokročilý člen
- Príspevky: 752
- Dátum registrácie: 24 Jún 2010, 00:00
- Bydlisko: Trnava
- Vek: 68
Re: zistenie stavu semaforu
Neviem, v akom jazyku to chceš používať, ale vo Microsoft VisualStudio( C++,Basic,...) hľadaj:
Interlocked..::.Exchange
Interlocked..::.Exchange
0
S.K.
-
- Stály člen
- Príspevky: 354
- Dátum registrácie: 26 Okt 2009, 00:00
- Vek: 32
- Kontaktovať používateľa:
- awen
- Power user
- Príspevky: 609
- Dátum registrácie: 11 Feb 2009, 00:00
- Bydlisko: Bratislava
- Vek: 36
Re: zistenie stavu semaforu
Robil som uz take veci, zdielana pamet cez shmget / shmat (hlavicky <sys/shm.h>) , plus semafor na riadenie. Vela stastia
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok