[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/4] util: Add thread-safe qemu_strerror() function
From: |
Yohei Kojima |
Subject: |
Re: [PATCH v3 1/4] util: Add thread-safe qemu_strerror() function |
Date: |
Fri, 31 Mar 2023 13:00:34 +0900 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 |
On 2023/03/31 4:06, Markus Armbruster wrote:
> Yohei Kojima <y-koj@outlook.jp> writes:
>
>> Add qemu_strerror() which follows the POSIX specification for
>> strerror(). While strerror() is not guaranteed to be thread-safe, this
>> function is thread-safe.
>
> Why not g_strerror()?
>
Because g_strerror() uses mutex in its implementation and there is a
risk to occur the deadlock. If one thread enters g_strerror() (soon the
mutex is locked), then another thread calls fork(), and the forked
child process try to call g_strerror(), then deadlock occurs.
>> This function is added to solve the following issue:
>> https://gitlab.com/qemu-project/qemu/-/issues/416
>
> The issue even asks for it...
>
Originally yes, but Daniel told the deadlock (or a mutex starvation)
risk for g_strerror() in the later discussion of the issue. Probably I
should have mention that in the commit message or the cover letter.
>> Signed-off-by: Yohei Kojima <y-koj@outlook.jp>
>