1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

Fix log message interleaving on Windows 98.

This commit is contained in:
Daniel Collins 2024-11-03 11:50:20 +00:00
parent b1ac06e3dd
commit e844ac5154

View File

@ -30,7 +30,14 @@ static HANDLE log_mutex = NULL;
void log_init()
{
if(!(log_mutex = CreateMutex(NULL, FALSE, NULL))) {
const char *mutex_name = NULL;
if(!windows_at_least_2000())
{
mutex_name = "ipxwrapper_global_log_mutex";
}
if(!(log_mutex = CreateMutex(NULL, FALSE, mutex_name))) {
abort();
}
}
@ -100,9 +107,9 @@ void log_printf(enum ipx_log_level level, const char *fmt, ...) {
memcpy((line + line_len), "\r\n", 2);
line_len += 2;
/* File locking isn't implemented on Windows 98, so we just skip it and
* hope we don't wind up with any interleaves writes from parallel
* threads (not much chance of an SMP Windows 98 machine anyway).
/* File locking isn't implemented on Windows 98, so we instead use a
* single global mutex to syncronise log file access between all
* processes and skip the file locking.
*/
bool use_locking = windows_at_least_2000();