[Spice-devel] [PATCH 2/7] Add reds_stream_set_async_error_handler() helper

Christophe Fergeau cfergeau at redhat.com
Tue Mar 25 06:05:54 PDT 2014


Hey,

On Tue, Mar 25, 2014 at 12:00:42PM +0100, Marc-André Lureau wrote:
> Ok, still unused. I am not sure why this should be move higher up in
> classes (why at AsyncRead it wasn't nice enough)?

We can pass the error_handler to each reds_stream_async_read() call, but as
we will be using the same one for all async calls, I preferred to set it
once and for all. AsyncRead is going to be private to reds_stream.c in one
of the next commits, and the error_handler will need to be set from reds.c,
hence the move to a public RedsStream method.

Christophe

> 
> 
> On Mon, Mar 17, 2014 at 2:20 PM, Christophe Fergeau <cfergeau at redhat.com>wrote:
> 
> > This replaces async_read_set_error_handler() which was unused. This sets a
> > callback to be called when an async operation fails.
> > ---
> >  server/reds_stream.c | 7 +++----
> >  server/reds_stream.h | 5 ++---
> >  2 files changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/server/reds_stream.c b/server/reds_stream.c
> > index 57eb1d1..cb42561 100644
> > --- a/server/reds_stream.c
> > +++ b/server/reds_stream.c
> > @@ -385,11 +385,10 @@ int reds_stream_enable_ssl(RedsStream *stream,
> > SSL_CTX *ctx)
> >      return reds_stream_ssl_accept(stream);
> >  }
> >
> > -void async_read_set_error_handler(AsyncRead *async,
> > -                                  AsyncReadError error_handler,
> > -                                 void *opaque)
> > +void reds_stream_set_async_error_handler(RedsStream *stream,
> > +                                         AsyncReadError error_handler)
> >  {
> > -    async->error = error_handler;
> > +    stream->priv->async_read.error = error_handler;
> >  }
> >
> >  static inline void async_read_clear_handlers(AsyncRead *obj)
> > diff --git a/server/reds_stream.h b/server/reds_stream.h
> > index 866679a..a5b7a17 100644
> > --- a/server/reds_stream.h
> > +++ b/server/reds_stream.h
> > @@ -39,9 +39,6 @@ typedef struct AsyncRead {
> >  } AsyncRead;
> >
> >  void async_read_handler(int fd, int event, void *data);
> > -void async_read_set_error_handler(AsyncRead *async,
> > -                                  AsyncReadError error_handler,
> > -                                  void *opaque);
> >
> >  typedef struct RedsStreamPrivate RedsStreamPrivate;
> >
> > @@ -67,6 +64,8 @@ typedef enum {
> >  ssize_t reds_stream_read(RedsStream *s, void *buf, size_t nbyte);
> >  void reds_stream_async_read(RedsStream *stream, uint8_t *data, size_t
> > size,
> >                              AsyncReadDone read_done_cb, void *opaque);
> > +void reds_stream_set_async_error_handler(RedsStream *stream,
> > +                                         AsyncReadError error_handler);
> >  ssize_t reds_stream_write(RedsStream *s, const void *buf, size_t nbyte);
> >  ssize_t reds_stream_writev(RedsStream *s, const struct iovec *iov, int
> > iovcnt);
> >  bool reds_stream_write_all(RedsStream *stream, const void *in_buf, size_t
> > n);
> > --
> > 1.8.5.3
> >
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >
> 
> 
> 
> -- 
> Marc-André Lureau
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20140325/0e904f94/attachment.sig>


More information about the Spice-devel mailing list