On 11/23/2010 05:02 PM, Juan Quintela wrote:
From: Juan Quintela<quint...@trasno.org>

This time is each time that buffered_file ticks happen

Signed-off-by: Juan Quintela<quint...@trasno.org>
Signed-off-by: Juan Quintela<quint...@redhat.com>
---
  buffered_file.c |    6 ++++--
  buffered_file.h |    2 ++
  2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/buffered_file.c b/buffered_file.c
index 1836e7e..1f492e6 100644
--- a/buffered_file.c
+++ b/buffered_file.c
@@ -20,6 +20,8 @@

  //#define DEBUG_BUFFERED_FILE

+const int buffered_file_interval = 100;

This should not be a global property but instead be a property of the QEMUFileBuffered.

More importantly, it shouldn't be tick intervals. We should use get_ticks_per_sec() to convert from a meaningful unit (like milliseconds).

The original code is bad in this regard so we should take the opportunity to make it suck a little less.

Regards,

Anthony Liguori

+
  typedef struct QEMUFileBuffered
  {
      BufferedPutFunc *put_buffer;
@@ -235,7 +237,7 @@ static void buffered_rate_tick(void *opaque)
          return;
      }

-    qemu_mod_timer(s->timer, qemu_get_clock(rt_clock) + 100);
+    qemu_mod_timer(s->timer, qemu_get_clock(rt_clock) + 
buffered_file_interval);

      if (s->freeze_output)
          return;
@@ -273,7 +275,7 @@ QEMUFile *qemu_fopen_ops_buffered(void *opaque,

      s->timer = qemu_new_timer(rt_clock, buffered_rate_tick, s);

-    qemu_mod_timer(s->timer, qemu_get_clock(rt_clock) + 100);
+    qemu_mod_timer(s->timer, qemu_get_clock(rt_clock) + 
buffered_file_interval);

      return s->file;
  }
diff --git a/buffered_file.h b/buffered_file.h
index 98d358b..a728316 100644
--- a/buffered_file.h
+++ b/buffered_file.h
@@ -21,6 +21,8 @@ typedef void (BufferedPutReadyFunc)(void *opaque);
  typedef void (BufferedWaitForUnfreezeFunc)(void *opaque);
  typedef int (BufferedCloseFunc)(void *opaque);

+extern const int buffered_file_interval;
+
  QEMUFile *qemu_fopen_ops_buffered(void *opaque, size_t xfer_limit,
                                    BufferedPutFunc *put_buffer,
                                    BufferedPutReadyFunc *put_ready,


Reply via email to