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

Marc-André Lureau mlureau at redhat.com
Tue Mar 25 06:09:53 PDT 2014



----- Original Message -----
> 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.


ack

> 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
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list