util/log: Use qemu_log_trylock/unlock in qemu_log

Avoid using QemuLogFile and RCU directly.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220417183019.755276-17-richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2022-04-17 11:29:56 -07:00
parent 9aee8f2c29
commit 095e9855b7
1 changed files with 5 additions and 6 deletions

View File

@ -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;
}