
Synchronizační problém
Ahoj, mám problém, který nevím jak vyřešit.
Mám jeden registr, do kterého zapisuji data (sdílená paměť).
Metody (funkce) : A, B, C, D zapíší data do registru a volají spusťA, spusťB, spusťC, spusťD - ty čtou data z registru a vykonají nějakou činnost.
Problém je v tom, že mám jen jeden registr a nevím jakým způsobem vyřešit kritickou sekci, přepsání (aby A, B, C, D si nepřepsaly registr, když je třeba nad ním vykonávána operace).
Všechno běží vícevláknově a neběží to ve smyčce! Tedy pouze jen někdy.
Jak by jste to vyřešili?
Díky za každou radu.
(je to v c++)
To snad zabezpecuje samotne WinAPI. http://stackoverflow.com/questions/706336/is-the-w in32-registry-thread-safe.
Vseobecne su na synchronizaciu threadov mutexy, mozes si to aj sam osetrit ak mas pochybnosti o WinAPI.
A vseobecne nechapem preco nepouzivas parametre funkcii ale nejaky registr, ked len metoda A vola metodu spustA. Potom sa clovek divi ze winupdate trva 3dni, ked asi aj v MS programuju take maglajzy. Registry nie su urcene na taketo veci.