summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/char_device.c11
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;