Čtvrteční programování

** 14:26 Mě už ve WinAPI nic nepřekvapí. To jsem ale ještě nenarazil na problém se zaseklým ATOM stringem ve Windows. Abys to pochopil; já ty Atomy používám ke zjištění, jestli někdo aplikaci nezkouší spouštět více než jednou. Proto si uložím do systému přes Global Atom specifický řetězec znaků, ke kterému můžou přistupovat všechny aplikace. Při startu svojí aplikace hledám ten svůj řetězec, když tam je, nedovolím spuštění nového programu. Při ukončení programu ten řetězec zase smažu. Ale co dělat, když program přestane odpovídat? Nic. ATOM ti na tom vyhnije a je to zralý leda tak na restart. Nebo to prostě v systému nějak najít, zabít process a zrušit atom ručně.

Proč vlastně potřebuju aby to beželo jenom jednou? Program pracuje s databází SQLite3 a kdyby se otevřela z více míst, může se poškodit. Kdybych ten soubor zamykal, tak se může databáze taky poškodit. Nejspíš mi nezbyde nic jiného, než ošetřit všechny vyjímky, používat ve všech vláknech semaphore, asserty, try/catch/exceptions... Problém je ale v tom, že za těch asi 15 měsíců co na tom dělám, je ten program tak obrovský, že je to spíš zralý na to abych to vzal a celý to prostě přepsal od začátku.