Daniel P. Berrangé <[email protected]> writes:

> There is a gotcha with qemu_log() usage in a threaded process.
> If fragments of a log message are output via qemu_log() it is
> possible for messages from two threads to get mixed up. To
> prevent this qemu_log_trylock() should be used, along with
> fprintf(f) calls.
>
> This is a subtle problem that needs to be explained in the
> API docs to ensure correct usage.
>
> In the Rust code, the log_mask_ln method which is conceptually
> equivalent to the C qemu_log() call will unconditionally append
> a newline so must only ever be used for complete log messages.
>
> Reported-by: Markus Armbruster <[email protected]>
> Signed-off-by: Daniel P. Berrangé <[email protected]>

Reviewed-by: Markus Armbruster <[email protected]>

Reply via email to