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

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

MVA
MVA (neregistrovaný)
8. 4. 2008 14:37

lockfile

celé vlákno
tento problem jsem resil - navic prenositelne - unix,linux, windows(cygwin), ...
nakonec jsem nekde vygoogloval reseniktere udajne pouziva firefox:
jadro problemu je v primititvu, ktera se obvykle teoreticky nazyva TSL (test-and-set lock) - cim ji implementovat na ruznych OS, shellech,atd...
reseni od firefoxaku je vyuzit operaci "mv", ktera z principu sve funkce ASI MELA BYT atomicka - bud se soubor presune nebo to ma skocnit s chybou ("jiz existuje-chcete prepsat?", nema prava, atd...)
takze postup:

lockfile=filelock_xyz
tmplock=filelock_xyz_tmp$$ # me tohle staci :-)
touch $tmplock

# dulezita je volba -i (interactive) - aby se ptal, zda ma prespat a dostal odpoved "ne"
echo "n" | mv -i $tmplock $lockfile >&2

if [ ! -f $tmplock ]
then
echo "File lock made: $lockfile" >&2
break;
else
....

kazdopadne by me zajimal nazor nekoho kdo ma cas, chut videt do mv, resp. asi az jadra, zda je ta operace fakt atomicka... a tudiz funguje jako tsl, pokud ano tak si myslim, ze je to relativne rozumny zpusob jak to delat a hlavne nevyzaduje nejake speciality (zamykani na urovni fs, dalsi programy a jine "podivnosti" :-) )