We ran into an interesting issue porting dconf (the gconf
replacement for storing application configurations in a
local DB, similar to the Windows registry). For some
reason, changes made to the configuration were not seen
by the Desktop, e.g. changing the background would have
no effect until after we logged back in. Trying to get the
value with dconf read would always return the former one
instead of the newly modified one.
Eventually we found out that the reason was due to our
mmap(2): OpenBSD does not implement a coherent file
system buffer cache, so we were missing an msync(2) call
with the MS_INVALIDATE flag to force invalidating the cache
and prevent returning the old value.
This was actually fun to debug
"Почему не меняются обои? Да это баг^Wфича в mmap()!" OH SHI~
rapture
12.08.2011 14:46 unknown
Do you really want to delete ?