[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 16/39] util/log: Use qemu_log_trylock/unlock in qemu_log
From: |
Richard Henderson |
Subject: |
[PATCH v3 16/39] util/log: Use qemu_log_trylock/unlock in qemu_log |
Date: |
Sun, 17 Apr 2022 11:29:56 -0700 |
Avoid using QemuLogFile and RCU directly.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
util/log.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/util/log.c b/util/log.c
index 6b7b358573..090bc3bc39 100644
--- a/util/log.c
+++ b/util/log.c
@@ -62,23 +62,22 @@ void qemu_log_unlock(FILE *fd)
/* Return the number of characters emitted. */
int qemu_log(const char *fmt, ...)
{
+ FILE *f = qemu_log_trylock();
int ret = 0;
- QemuLogFile *logfile;
- rcu_read_lock();
- logfile = qatomic_rcu_read(&qemu_logfile);
- if (logfile) {
+ if (f) {
va_list ap;
+
va_start(ap, fmt);
- ret = vfprintf(logfile->fd, fmt, ap);
+ ret = vfprintf(f, fmt, ap);
va_end(ap);
+ qemu_log_unlock(f);
/* Don't pass back error results. */
if (ret < 0) {
ret = 0;
}
}
- rcu_read_unlock();
return ret;
}
--
2.25.1
- [PATCH v3 01/39] util/log: Drop manual log buffering, (continued)
- [PATCH v3 01/39] util/log: Drop manual log buffering, Richard Henderson, 2022/04/17
- [PATCH v3 11/39] tcg: Pass the locked filepointer to tcg_dump_ops, Richard Henderson, 2022/04/17
- [PATCH v3 03/39] util/log: Return bool from qemu_set_log_filename, Richard Henderson, 2022/04/17
- [PATCH v3 06/39] util/log: Move qemu_log_lock, qemu_log_unlock out of line, Richard Henderson, 2022/04/17
- [PATCH v3 05/39] os-posix: Use qemu_log_enabled, Richard Henderson, 2022/04/17
- [PATCH v3 14/39] accel/tcg: Use cpu_dump_state between qemu_log_trylock/unlock, Richard Henderson, 2022/04/17
- [PATCH v3 20/39] util/log: Drop call to setvbuf, Richard Henderson, 2022/04/17
- [PATCH v3 10/39] util/log: Remove qemu_log_vprintf, Richard Henderson, 2022/04/17
- [PATCH v3 08/39] hw/xen: Split out xen_pv_output_msg, Richard Henderson, 2022/04/17
- [PATCH v3 09/39] *: Use fprintf between qemu_log_trylock/unlock, Richard Henderson, 2022/04/17
- [PATCH v3 16/39] util/log: Use qemu_log_trylock/unlock in qemu_log,
Richard Henderson <=
- [PATCH v3 17/39] util/log: Drop return value from qemu_log, Richard Henderson, 2022/04/17
- [PATCH v3 25/39] include/qemu/log: Move entire implementation out-of-line, Richard Henderson, 2022/04/17
- [PATCH v3 27/39] util/log: Introduce qemu_set_log_filename_flags, Richard Henderson, 2022/04/17
- [PATCH v3 32/39] util/log: Rename logfilename to global_filename, Richard Henderson, 2022/04/17
- [PATCH v3 37/39] util/log: Rename QemuLogFile to RCUCloseFILE, Richard Henderson, 2022/04/17
- [PATCH v3 13/39] exec/log: Remove log_disas and log_target_disas, Richard Henderson, 2022/04/17
- [PATCH v3 07/39] util/log: Rename qemu_log_lock to qemu_log_trylock, Richard Henderson, 2022/04/17
- [PATCH v3 22/39] linux-user: Expand log_page_dump inline, Richard Henderson, 2022/04/17
- [PATCH v3 23/39] tests/unit: Do not reference QemuLogFile directly, Richard Henderson, 2022/04/17
- [PATCH v3 21/39] bsd-user: Expand log_page_dump inline, Richard Henderson, 2022/04/17