"Dr. David Alan Gilbert" <dgilb...@redhat.com> wrote: > * Juan Quintela (quint...@redhat.com) wrote: >> "Dr. David Alan Gilbert (git)" <dgilb...@redhat.com> wrote: >> > From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> >> > >> > Add a wrapper to change the blocking status on a QEMUFile >> > rather than having to use qemu_set_block(qemu_get_fd(f)); >> > it seems best to avoid exposing the fd since not all QEMUFile's >> > really have one. With this wrapper we could move the implementation >> > down to be different on different transports. >> > >> > Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> >> > Reviewed-by: Amit Shah <amit.s...@redhat.com> >> >> Reviewed-by: Juan Quintela <quint...@redhat.com> >> >> Can we improve naming? >> >> > --- >> > include/migration/qemu-file.h | 1 + >> > migration/qemu-file.c | 15 +++++++++++++++ >> > 2 files changed, 16 insertions(+) >> > >> > diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h >> > index 29a9d69..d43c835 100644 >> > --- a/include/migration/qemu-file.h >> > +++ b/include/migration/qemu-file.h >> > @@ -193,6 +193,7 @@ int qemu_file_get_error(QEMUFile *f); >> > void qemu_file_set_error(QEMUFile *f, int ret); >> > int qemu_file_shutdown(QEMUFile *f); >> > void qemu_fflush(QEMUFile *f); >> > +void qemu_file_change_blocking(QEMUFile *f, bool block); >> > >> > static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv) >> > { >> > diff --git a/migration/qemu-file.c b/migration/qemu-file.c >> > index c111a6b..c746129 100644 >> > --- a/migration/qemu-file.c >> > +++ b/migration/qemu-file.c >> > @@ -651,3 +651,18 @@ size_t qemu_get_counted_string(QEMUFile *f, char >> > buf[256]) >> > >> > return res == len ? res : 0; >> > } >> > + >> > +/* >> > + * Change the blocking state of the QEMUFile. >> > + * Note: On some transports the OS only keeps a single blocking state for >> > + * both directions, and thus changing the blocking on the main >> > + * QEMUFile can also affect the return path. >> > + */ >> > +void qemu_file_change_blocking(QEMUFile *f, bool block) >> >> qemu_file_set_blocking? >> >> It don't change the blocking, it just do whatever block says? >> >> > +{ >> > + if (block) { >> > + qemu_set_block(qemu_get_fd(f)); >> > + } else { >> > + qemu_set_nonblock(qemu_get_fd(f)); >> > + } >> > +} > > I worry about having a: > qemu_file_set_blocking > and a > qemu_set_block > > it sounds a bit similar when one always 'sets' (i.e. turns on) > and the other either turns on or off.
There is a parameter difference, but I am not writting the code, and don't care so much. I would expect a function with change in its name to change to the other plocking, whatever that is :P Later, Juan.