[Spice-devel] [PATCH v2 02/19] Free statistic file on spice_server_destroy
Pavel Grunt
pgrunt at redhat.com
Wed Nov 30 12:26:29 UTC 2016
On Fri, 2016-11-25 at 14:52 +0000, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
Acked-by: Pavel Grunt <pgrunt at redhat.com>
> ---
> server/reds.c | 4 ++++
> server/stat-file.c | 17 +++++++++++++++++
> server/stat-file.h | 1 +
> server/tests/test-stat-file.c | 2 ++
> 4 files changed, 24 insertions(+)
>
> diff --git a/server/reds.c b/server/reds.c
> index 0e68973..1b1c737 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -3599,6 +3599,10 @@ SPICE_GNUC_VISIBLE void
> spice_server_destroy(SpiceServer *reds)
> pthread_mutex_lock(&global_reds_lock);
> servers = g_list_remove(servers, reds);
> pthread_mutex_unlock(&global_reds_lock);
> +
> +#ifdef RED_STATISTICS
> + stat_file_free(reds->stat_file);
> +#endif
> }
>
> SPICE_GNUC_VISIBLE spice_compat_version_t
> spice_get_current_compat_version(void)
> diff --git a/server/stat-file.c b/server/stat-file.c
> index d1e25ce..beed77a 100644
> --- a/server/stat-file.c
> +++ b/server/stat-file.c
> @@ -80,6 +80,23 @@ cleanup:
> return NULL;
> }
>
> +void stat_file_free(RedStatFile *stat_file)
> +{
> + if (!stat_file) {
> + return;
> + }
> +
> + stat_file_unlink(stat_file);
> + /* TODO other part of the code is not ready for this! */
> +#if 0
> + size_t shm_size = STAT_SHM_SIZE(stat_file->max_nodes);
> + munmap(stat_file->stat, shm_size);
> +#endif
> +
> + pthread_mutex_destroy(&stat_file->lock);
> + free(stat_file);
> +}
> +
> const char *stat_file_get_shm_name(RedStatFile *stat_file)
> {
> return stat_file->shm_name;
> diff --git a/server/stat-file.h b/server/stat-file.h
> index 903b68b..0454e2e 100644
> --- a/server/stat-file.h
> +++ b/server/stat-file.h
> @@ -27,6 +27,7 @@ typedef uint32_t StatNodeRef;
> typedef struct RedStatFile RedStatFile;
>
> RedStatFile *stat_file_new(unsigned int max_nodes);
> +void stat_file_free(RedStatFile *stat_file);
> void stat_file_unlink(RedStatFile *file_stat);
> const char *stat_file_get_shm_name(RedStatFile *stat_file);
> StatNodeRef stat_file_add_node(RedStatFile *stat_file, StatNodeRef
> parent,
> diff --git a/server/tests/test-stat-file.c b/server/tests/test-stat-
> file.c
> index 09b0c7a..40cf37d 100644
> --- a/server/tests/test-stat-file.c
> +++ b/server/tests/test-stat-file.c
> @@ -93,6 +93,8 @@ static void stat_file(void)
> g_assert_null(stat_file_get_shm_name(stat_file));
> g_assert_cmpint(access(filename, F_OK),==,-1);
> free(filename);
> +
> + stat_file_free(stat_file);
> }
>
> int main(int argc, char *argv[])
More information about the Spice-devel
mailing list