[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 25/33] chardev/char.c: Use qemu_co_sleep_ns if in coroutine
From: |
Jason Wang |
Subject: |
[PULL 25/33] chardev/char.c: Use qemu_co_sleep_ns if in coroutine |
Date: |
Tue, 16 Jun 2020 14:45:36 +0800 |
From: Lukas Straub <lukasstraub2@web.de>
To be able to convert compare_chr_send to a coroutine in the
next commit, use qemu_co_sleep_ns if in coroutine.
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Zhang Chen <chen.zhang@intel.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Zhang Chen <chen.zhang@intel.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
chardev/char.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/chardev/char.c b/chardev/char.c
index ea06c5f..e305129 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -38,6 +38,7 @@
#include "qemu/module.h"
#include "qemu/option.h"
#include "qemu/id.h"
+#include "qemu/coroutine.h"
#include "chardev/char-mux.h"
@@ -119,7 +120,11 @@ static int qemu_chr_write_buffer(Chardev *s,
retry:
res = cc->chr_write(s, buf + *offset, len - *offset);
if (res < 0 && errno == EAGAIN && write_all) {
- g_usleep(100);
+ if (qemu_in_coroutine()) {
+ qemu_co_sleep_ns(QEMU_CLOCK_REALTIME, 100000);
+ } else {
+ g_usleep(100);
+ }
goto retry;
}
--
2.5.0
- [PULL 15/33] net: cadence_gem: Set ISR according to queue in use, (continued)
- [PULL 15/33] net: cadence_gem: Set ISR according to queue in use, Jason Wang, 2020/06/16
- [PULL 17/33] net: cadence_gem: Fix up code style, Jason Wang, 2020/06/16
- [PULL 18/33] net: cadence_gem: Add support for jumbo frames, Jason Wang, 2020/06/16
- [PULL 19/33] net: cadnece_gem: Update irq_read_clear field of designcfg_debug1 reg, Jason Wang, 2020/06/16
- [PULL 20/33] net: cadence_gem: Update the reset value for interrupt mask register, Jason Wang, 2020/06/16
- [PULL 22/33] net: cadence_gem: Fix RX address filtering, Jason Wang, 2020/06/16
- [PULL 21/33] net: cadence_gem: TX_LAST bit should be set by guest, Jason Wang, 2020/06/16
- [PULL 23/33] net: use peer when purging queue in qemu_flush_or_purge_queue_packets(), Jason Wang, 2020/06/16
- [PULL 24/33] net/colo-compare.c: Create event_bh with the right AioContext, Jason Wang, 2020/06/16
- [PULL 27/33] net/colo-compare.c: Only hexdump packets if tracing is enabled, Jason Wang, 2020/06/16
- [PULL 25/33] chardev/char.c: Use qemu_co_sleep_ns if in coroutine,
Jason Wang <=
- [PULL 26/33] net/colo-compare.c: Fix deadlock in compare_chr_send, Jason Wang, 2020/06/16
- [PULL 28/33] net/colo-compare.c: Check that colo-compare is active, Jason Wang, 2020/06/16
- [PULL 29/33] net/colo-compare.c: Correct ordering in complete and finalize, Jason Wang, 2020/06/16
- [PULL 30/33] colo-compare: Fix memory leak in packet_enqueue(), Jason Wang, 2020/06/16
- [PULL 31/33] hw/net/e1000e: Do not abort() on invalid PSRCTL register value, Jason Wang, 2020/06/16
- [PULL 33/33] net: Drop the NetLegacy structure, always use Netdev instead, Jason Wang, 2020/06/16
- [PULL 32/33] net: Drop the legacy "name" parameter from the -net option, Jason Wang, 2020/06/16
- Re: [PULL 00/33] Net patches, Peter Maydell, 2020/06/16