atomicky robis iba dvojicu (kontrola na lock + precitanie). A tiez samozrejme atomicky zamykas.
Zlozitejsiu konstrukciu robit vobec nemusis, staci ked das medzi citanie a zapis nejaku fuknciu, ktora dlho trva (napr. 100x spocitat sinus alebo nieco take), alebo snad aj sleep(1). Myslim ze v linuxe je nejaky prikaz time (alebo tak nejak), ktory vie zistit ako dlho bezal proces.
Ide len o to, zmerat aky velky overhead znamena zamykanie.