mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
char: qemu_chr_write_log() use qemu_write_full()
logfd is blocking, so we don't need to care about EAGAIN. Let's simply use qemu_write_full(). Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260201173633.413934-2-vsementsov@yandex-team.ru>
This commit is contained in:
committed by
Marc-André Lureau
parent
518d1458bd
commit
fa25379f76
@@ -82,29 +82,17 @@ void qemu_chr_be_event(Chardev *s, QEMUChrEvent event)
|
||||
CHARDEV_GET_CLASS(s)->chr_be_event(s, event);
|
||||
}
|
||||
|
||||
/* Not reporting errors from writing to logfile, as logs are
|
||||
* defined to be "best effort" only */
|
||||
static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
|
||||
{
|
||||
size_t done = 0;
|
||||
ssize_t ret;
|
||||
|
||||
if (s->logfd < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
while (done < len) {
|
||||
retry:
|
||||
ret = write(s->logfd, buf + done, len - done);
|
||||
if (ret == -1 && errno == EAGAIN) {
|
||||
g_usleep(100);
|
||||
goto retry;
|
||||
}
|
||||
|
||||
if (ret <= 0) {
|
||||
return;
|
||||
}
|
||||
done += ret;
|
||||
if (qemu_write_full(s->logfd, buf, len) < len) {
|
||||
/*
|
||||
* qemu_write_full() is defined with G_GNUC_WARN_UNUSED_RESULT,
|
||||
* but logging is best‑effort, we do ignore errors.
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user