qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: dave@treblig.org
Cc: qemu-devel@nongnu.org
Subject: Re: [PATCH] io/channel-socket: Remove unused qio_channel_socket_dgram_async
Date: Thu, 19 Sep 2024 14:16:00 +0200	[thread overview]
Message-ID: <ZuwWANORpHFw4L9e@redhat.com> (raw)
In-Reply-To: <20240919000034.485744-1-dave@treblig.org>

On Thu, Sep 19, 2024 at 01:00:34AM +0100, dave@treblig.org wrote:
> From: "Dr. David Alan Gilbert" <dave@treblig.org>
> 
> qio_channel_socket_dgram_async has been unused since it was originally
> added in 2015.
> 
> Remove it.

This was knowingly added as unused, since the QIO channel APIs
were intended to be providing an general purpose interface that
was anticipating future development. On the one hand it hasn't
been used in 9 years, but on the other hand removing it makes
the API inconsistent since we provide sync+async variants of
every API.

> 
> Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
> ---
>  include/io/channel-socket.h | 29 --------------------
>  io/channel-socket.c         | 54 -------------------------------------
>  io/trace-events             |  1 -
>  3 files changed, 84 deletions(-)
> 
> diff --git a/include/io/channel-socket.h b/include/io/channel-socket.h
> index ab15577d38..6c858cc6b5 100644
> --- a/include/io/channel-socket.h
> +++ b/include/io/channel-socket.h
> @@ -182,35 +182,6 @@ int qio_channel_socket_dgram_sync(QIOChannelSocket *ioc,
>                                    SocketAddress *remoteAddr,
>                                    Error **errp);
>  
> -/**
> - * qio_channel_socket_dgram_async:
> - * @ioc: the socket channel object
> - * @localAddr: the address to local bind address
> - * @remoteAddr: the address to remote peer address
> - * @callback: the function to invoke on completion
> - * @opaque: user data to pass to @callback
> - * @destroy: the function to free @opaque
> - * @context: the context to run the async task. If %NULL, the default
> - *           context will be used.
> - *
> - * Attempt to initialize a datagram socket bound to
> - * @localAddr and communicating with peer @remoteAddr.
> - * This method will run in the background so the caller
> - * will regain execution control immediately. The function
> - * @callback will be invoked on completion or failure.
> - * The @localAddr and @remoteAddr parameters will be copied,
> - * so may be freed as soon as this function returns without
> - * waiting for completion.
> - */
> -void qio_channel_socket_dgram_async(QIOChannelSocket *ioc,
> -                                    SocketAddress *localAddr,
> -                                    SocketAddress *remoteAddr,
> -                                    QIOTaskFunc callback,
> -                                    gpointer opaque,
> -                                    GDestroyNotify destroy,
> -                                    GMainContext *context);
> -
> -
>  /**
>   * qio_channel_socket_get_local_address:
>   * @ioc: the socket channel object
> diff --git a/io/channel-socket.c b/io/channel-socket.c
> index 608bcf066e..2282e7a549 100644
> --- a/io/channel-socket.c
> +++ b/io/channel-socket.c
> @@ -319,60 +319,6 @@ int qio_channel_socket_dgram_sync(QIOChannelSocket *ioc,
>  }
>  
>  
> -struct QIOChannelSocketDGramWorkerData {
> -    SocketAddress *localAddr;
> -    SocketAddress *remoteAddr;
> -};
> -
> -
> -static void qio_channel_socket_dgram_worker_free(gpointer opaque)
> -{
> -    struct QIOChannelSocketDGramWorkerData *data = opaque;
> -    qapi_free_SocketAddress(data->localAddr);
> -    qapi_free_SocketAddress(data->remoteAddr);
> -    g_free(data);
> -}
> -
> -static void qio_channel_socket_dgram_worker(QIOTask *task,
> -                                            gpointer opaque)
> -{
> -    QIOChannelSocket *ioc = QIO_CHANNEL_SOCKET(qio_task_get_source(task));
> -    struct QIOChannelSocketDGramWorkerData *data = opaque;
> -    Error *err = NULL;
> -
> -    /* socket_dgram() blocks in DNS lookups, so we must use a thread */
> -    qio_channel_socket_dgram_sync(ioc, data->localAddr,
> -                                  data->remoteAddr, &err);
> -
> -    qio_task_set_error(task, err);
> -}
> -
> -
> -void qio_channel_socket_dgram_async(QIOChannelSocket *ioc,
> -                                    SocketAddress *localAddr,
> -                                    SocketAddress *remoteAddr,
> -                                    QIOTaskFunc callback,
> -                                    gpointer opaque,
> -                                    GDestroyNotify destroy,
> -                                    GMainContext *context)
> -{
> -    QIOTask *task = qio_task_new(
> -        OBJECT(ioc), callback, opaque, destroy);
> -    struct QIOChannelSocketDGramWorkerData *data = g_new0(
> -        struct QIOChannelSocketDGramWorkerData, 1);
> -
> -    data->localAddr = QAPI_CLONE(SocketAddress, localAddr);
> -    data->remoteAddr = QAPI_CLONE(SocketAddress, remoteAddr);
> -
> -    trace_qio_channel_socket_dgram_async(ioc, localAddr, remoteAddr);
> -    qio_task_run_in_thread(task,
> -                           qio_channel_socket_dgram_worker,
> -                           data,
> -                           qio_channel_socket_dgram_worker_free,
> -                           context);
> -}
> -
> -
>  QIOChannelSocket *
>  qio_channel_socket_accept(QIOChannelSocket *ioc,
>                            Error **errp)
> diff --git a/io/trace-events b/io/trace-events
> index d4c0f84a9a..5d0d4358db 100644
> --- a/io/trace-events
> +++ b/io/trace-events
> @@ -25,7 +25,6 @@ qio_channel_socket_listen_async(void *ioc, void *addr, int num) "Socket listen a
>  qio_channel_socket_listen_fail(void *ioc) "Socket listen fail ioc=%p"
>  qio_channel_socket_listen_complete(void *ioc, int fd) "Socket listen complete ioc=%p fd=%d"
>  qio_channel_socket_dgram_sync(void *ioc, void *localAddr, void *remoteAddr) "Socket dgram sync ioc=%p localAddr=%p remoteAddr=%p"
> -qio_channel_socket_dgram_async(void *ioc, void *localAddr, void *remoteAddr) "Socket dgram async ioc=%p localAddr=%p remoteAddr=%p"
>  qio_channel_socket_dgram_fail(void *ioc) "Socket dgram fail ioc=%p"
>  qio_channel_socket_dgram_complete(void *ioc, int fd) "Socket dgram complete ioc=%p fd=%d"
>  qio_channel_socket_accept(void *ioc) "Socket accept start ioc=%p"
> -- 
> 2.46.0
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  reply	other threads:[~2024-09-19 12:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-19  0:00 [PATCH] io/channel-socket: Remove unused qio_channel_socket_dgram_async dave
2024-09-19 12:16 ` Daniel P. Berrangé [this message]
2024-09-19 12:36   ` Dr. David Alan Gilbert
2024-09-19 12:44     ` Daniel P. Berrangé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZuwWANORpHFw4L9e@redhat.com \
    --to=berrange@redhat.com \
    --cc=dave@treblig.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).