|
From: Seiji A. <sei...@hd...> - 2013-02-01 22:41:13
|
> > Are gmtime() + strftime() unsuitable for some reason? > > They are not async-signal safe, so they are not usable in between a > fork() and exec*(). Libvirt avoids them because it DOES log information including timestamps in between fork/exec (and prior to > writing libvirt's virtime.c, we DID hit cases where libvirt would deadlock a child process due to the non-safe use of a more naive > timestamp generator), but I don't know if qemu suffers from the same restriction of when it has anything worth logging. In my understanding, gmtime() + strftime() is usable in error_report() because it seems to be called For just a option check. >[TODO] >Other functions below are used to output error messages in qemu. >- qerror_report() is called in many source codes. >- fprintf() is called in vl.c. On the other hand, qerror_report() and fprintf () seems to be called in signal handers. So, in those cases, some signal-safe functions should be used. Seiji |