diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-03-29 10:05:24 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-03-29 10:05:24 +0100 |
commit | 3d775594b506e4199e850b51af8de762902b849a (patch) | |
tree | 1e0e803146693dfd35f2014eaf73600250e03a78 | |
parent | e3c6f793f7592bce4778986b2e28f9e7f2c56589 (diff) | |
download | spice-3d775594b506e4199e850b51af8de762902b849a.tar.gz spice-3d775594b506e4199e850b51af8de762902b849a.tar.xz spice-3d775594b506e4199e850b51af8de762902b849a.zip |
char_device: Don't set the write-retry timer when not running
The write-retry timer should not be set when we're leaving
spice_char_device_write_to_device because the char-dev has been stopped.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | server/char_device.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/server/char_device.c b/server/char_device.c index 368c9bc0..63afee11 100644 --- a/server/char_device.c +++ b/server/char_device.c @@ -468,10 +468,13 @@ static int spice_char_device_write_to_device(SpiceCharDeviceState *dev) dev->cur_write_buf_pos += n; } /* retry writing as long as the write queue is not empty */ - if (dev->cur_write_buf) { - core->timer_start(dev->write_to_dev_timer, CHAR_DEVICE_WRITE_TO_TIMEOUT); - } else { - spice_assert(ring_is_empty(&dev->write_queue)); + if (dev->running) { + if (dev->cur_write_buf) { + core->timer_start(dev->write_to_dev_timer, + CHAR_DEVICE_WRITE_TO_TIMEOUT); + } else { + spice_assert(ring_is_empty(&dev->write_queue)); + } } spice_char_device_state_unref(dev); dev->active = dev->active || total; |