Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Hrátky z řádky: pomocné soubory a zamykání

marvin
marvin (neregistrovaný)
7. 4. 2008 2:50

lock

napadlo mi toto:
1.skontrolujeme ci existuje foo-lockfile
2.ak ano->cakame kym sa uvolni zamok
ak nie-> echo $PID >>foo-lockfile
3.skontrolujeme ci cislo na zaciatku foo-lockfile je pid nasho procesu
ak ano-> zamok je nas
ak nie-> cakame kym sa uvolni zamok

to by malo stacit,ak si to dobre pamatam z unixovych cviceni:)
uživatel si přál zůstat v anonymitě
7. 4. 2008 3:05

Re: lock

to by stacilo, kdyby vsechny programy pristupujici k tomu souboru pouzivaly stejny typ zamykani
peter
peter (neregistrovaný)
7. 4. 2008 9:27

Re: lock

a co ked dva konkurencne procesy budu prebiehat takto:

p1: kontrola => subor neexistuje
p2: kontrola => subor neexistuje
p1: echo $PID >> foo-lockfile
p1: kontrola => cislo pid je nase => zamok je nas
p2: echo $PID >> foo-lockfile
p2: kontrola => cislo pid je nase => zamok je nas
pht
pht (neregistrovaný)
7. 4. 2008 9:49

Re: lock

nebudou, protoze >> a ne >. v poslednim kroku budou v souboru dve pid.
peter
peter (neregistrovaný)
7. 4. 2008 11:20

Re: lock

aha dik za objasnenie
Dan
Dan (neregistrovaný)
7. 4. 2008 18:36

Re: lock

A co takhle:
p1: kontrola => subor neexistuje
p2: kontrola => subor neexistuje
p1: echo $PID >> foo-lockfile
p2: echo $PID >> foo-lockfile
p1: kontrola => cislo pid neni nase => zamok neni nas
p2: kontrola => cislo pid neni nase => zamok neni nas

Nebo proste situace, kdy p1 nestihne zapsat vse pred tim, nez zacne zapisovat p2 - pak se bude zapisovat na preskacku a pod.
Nic takoveho fungovat nebude...
Jediny zpusob, jak lze efektivne zamykat nejaky proces na nejakem zdroji, je pozadat o to jadro (mutexy semafory,...).
Ash
Ash (neregistrovaný)
7. 4. 2008 23:43

Re: lock

Minimálně jeden z procesů p1 p2 si tam to své PID najde (jako první v pořadí v souboru). Takže výsledkem bude "cislo pid je nase" => zamok je nas.
Ondrej
Ondrej (neregistrovaný)
7. 4. 2008 9:56

Re: lock

Kez uz robit zamok na fs, tak jedine pomocou mkdir
Zasílat nově přidané příspěvky e-mailem