/** * @internal * @returns the number of initializations left for this system * @brief Attempts to shut down the subsystem if nothing else is using it */ void efreet_desktop_shutdown(void) { Efreet_Desktop_Type_Info *info; char *dir; if (efreet_desktop_exe_handler) ecore_event_handler_del(efreet_desktop_exe_handler); IF_RELEASE(desktop_environment); IF_FREE_HASH(efreet_desktop_cache); while (efreet_desktop_types) { info = eina_list_data_get(efreet_desktop_types); efreet_desktop_type_info_free(info); efreet_desktop_types = eina_list_remove_list(efreet_desktop_types, efreet_desktop_types); } EINA_LIST_FREE(efreet_desktop_dirs, dir) eina_stringshare_del(dir); if (cache_monitor) ecore_file_monitor_del(cache_monitor); if (change_monitors) eina_hash_free(change_monitors); if (cache) eet_close(cache); efreet_desktop_edd_shutdown(desktop_edd); ecore_file_shutdown(); eina_log_domain_unregister(_efreet_desktop_log_dom); IF_RELEASE(cache_file); IF_RELEASE(cache_dirs); if (efreet_desktop_job) ecore_job_del(efreet_desktop_job); efreet_desktop_job = NULL; }
static void _unload_position_fb(void *self) { plugin_t *plugin = (plugin_t *)self; if(plugin->monitor) ecore_file_monitor_del(plugin->monitor); position_cache_free(plugin->cache); free(plugin->state_file); free(plugin); }
static Eina_Bool volume_timer(void *data) { char buf[4096]; volume_load(); volumes_load_timer = NULL; if (volumes_file_mon) ecore_file_monitor_del(volumes_file_mon); snprintf(buf, sizeof(buf), "%s/volumes", config); volumes_file_mon = ecore_file_monitor_add(buf, volume_file_change, NULL); return EINA_FALSE; }