zistenie stavu semaforu

C,C++,C#

Moderátori: psichac, Moderátori

aero
Stály člen
Stály člen
Príspevky: 354
Dátum registrácie: 26 Okt 2009, 00:00
Vek: 32
Kontaktovať používateľa:

zistenie stavu semaforu

Príspevok od používateľa aero » 03 Dec 2012, 17:40

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
0

stefanSK
Pokročilý člen
Pokročilý člen
Príspevky: 752
Dátum registrácie: 24 Jún 2010, 00:00
Bydlisko: Trnava
Vek: 68

Re: zistenie stavu semaforu

Príspevok od používateľa stefanSK » 03 Dec 2012, 17:56

Neviem, v akom jazyku to chceš používať, ale vo Microsoft VisualStudio( C++,Basic,...) hľadaj:

Interlocked..::.Exchange
0
S.K.

aero
Stály člen
Stály člen
Príspevky: 354
Dátum registrácie: 26 Okt 2009, 00:00
Vek: 32
Kontaktovať používateľa:

Re: zistenie stavu semaforu

Príspevok od používateľa aero » 03 Dec 2012, 18:00

nie, nie žiadny mrkvosoft :-)
v Céčku, pod Linuxom
0

Používateľov profilový obrázok
awen
Power user
Power user
Príspevky: 609
Dátum registrácie: 11 Feb 2009, 00:00
Bydlisko: Bratislava
Vek: 36

Re: zistenie stavu semaforu

Príspevok od používateľa awen » 03 Dec 2012, 18:26

Robil som uz take veci, zdielana pamet cez shmget / shmat (hlavicky <sys/shm.h>) , plus semafor na riadenie. Vela stastia :)
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok