[Spice-devel] [spice PATCH v1 3/3] char-device: free all memory pool when no clients

Fabiano FidĂȘncio fidencio at redhat.com
Thu Nov 12 08:14:04 PST 2015


On Thu, Nov 12, 2015 at 5:00 PM, Victor Toso <victortoso at redhat.com> wrote:
> When no client is connect we should not need to keep the memory pool
> used by char-device. On most situations this is not significante but
> when using webdav this could mean freeing MAX_POOL_SIZE bytes
>
> Related: https://bugs.freedesktop.org/show_bug.cgi?id=91350
> ---
>  server/char_device.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/server/char_device.c b/server/char_device.c
> index 5eda89c..d757d9b 100644
> --- a/server/char_device.c
> +++ b/server/char_device.c
> @@ -826,6 +826,12 @@ void spice_char_device_client_remove(SpiceCharDeviceState *dev,
>          dev->wait_for_migrate_data  = FALSE;
>          spice_char_device_read_from_device(dev);
>      }
> +
> +    if (dev->num_clients == 0) {
> +        spice_debug("client removed, memory pool will be freed (%lu bytes)", dev->cur_pool_size);
> +        write_buffers_queue_free(&dev->write_bufs_pool);
> +        dev->cur_pool_size = 0;
> +    }
>  }
>
>  int spice_char_device_client_exists(SpiceCharDeviceState *dev,
> --
> 2.5.0
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel

Looks good, ACK!


More information about the Spice-devel mailing list