The backend library to read freedesktop.org application menu files has been released updating important aspects.
- The libmenu-cache is made thread-safe. Thread-unsafe APIs are marked as deprecated now and should be never used in any multithreaded application.
- Added creation of HTML developers documentation. It is triggered by configure script option –enable-gtk-doc.
- The libmenu-cache is made more responsible by moving some time-critical operations into thread. Also it preloads saved cache file if it exists so it is available near instantly after menu_cache_lookup(). Caller still will get updates by adding notifier to the cache.
- Added automatic shutdown of menu-cached server after some inactivity timeout (i.e. all clients were unregistered).
- Fixed few memory problems (referencing errors and memory leaks).
- Fix for bug #3501347: use g_get_tmp_dir() instead of hardcoded “/tmp”.
- The libmenu-cache ABI bumped to 2.
menu-cache-0.4.0.tar.gz, sha1sum: f853d195cde1209873cc1f11bc401cce2cbef2f6
UPDATE: The release tar file is missing a file! Do not use it, grab 0.4.1 instead (or rather use the git repository).
df0e231 – Update for NEWS file.
bf741d1 – ABI bump 1 -> 2.
89aa5d8 – Source documentation: enums for MenuCacheItem.
2823f05 – [#3501347]g_get_tmp_dir() should be used instead of hardcoded “/tmp”.
35c4abe – Fix: memory leak in menu_cache_unref().
8b046bf – New thread-safe API menu_cache_dir_list_children().
3899a74 – Always do cache reload in default main loop.
9e5f0e1 – Fix: –enable-debug doesn’t affect libmenu-cache compilation.
9ccbff2 – Don’t recreate cache if nobody listen for reloads.
d134e6c – Fix on server starter in libmenu-cache: it may get ENOENT.
a7002ac – Fix on test for separator in cache file parser.
d3089bd – Fix for compilation with DISABLE_DAEMONIZE.
fab90d5 – Corrections on GIOChannel handling.
e528621 – Test g_source_is_destroyed() in timeout handler is very welcomed.
c423cfe – Cosmetic changes (indentation, source text formatting).
b9c2816 – Changed cache referencing completely.
8edebe4 – Use GCancellable in connection process too.
a630e77 – Addicg GMutex to avoid parallel connect from different threads.
44ed600 – Use GCancellable on cache file read operations.
b03ac65 – Load cached file first if available.
2dd8924 – Loading cache better be started in thread.
b839830 – Avoid launch of duplicate menu-cached in case of errors.
08a0127 – A little optimization on casts MENU_CACHE_DIR(dir) in _dup_ APIs.
b3f7561 – Change for lock since parent member of MenuCacheItem isn’t protected by reference.
fa16c31 – Change for lock since items in hash aren’t protected by reference.
6192475 – Fixes for all compilation warnings.
d60060e – Fix for memory leak on cache loading error.
f647b41 – Adding documentation in sources for gtk-doc processing.
380c917 – Adding missed ‘static’ keyword for few definitions.
063a9d9 – Add gtk-doc documentation handling into source tree.
02901b0 – reload_notify should be called always on idle to be thread-safe.
2bbec57 – Notifier should use not gpointer but some specific data.
0fd928d – Added three thread-safe API replacements for thread-unsafe APIs.
908a1ee – Added a common lock for thread safety.
0adf7a8 – Eliminated all compiler warnings in libmenu-cache.
9ac8975 – Removed redundant parameters from ADDITIONAL_FLAGS.
fbead80 – Non void function should return something