Skip to content

Commit

Permalink
mimalloc: make MIMALLOC_SHOW_STATS work with redirected stderr
Browse files Browse the repository at this point in the history
Setting `MIMALLOC_SHOW_STATS` to ask mimalloc to print out something
after the process is done is the easiest way to verify that a
mimalloc-enabled Git is running.

So it better work and not try to write to a Win32 Console when it got a
regular file handle instead or, as is the case in Git for Windows'
regular Git Bash window, an emulated pseudo terminal.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  • Loading branch information
dscho committed Sep 16, 2022
1 parent 314ace6 commit aa076e0
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions compat/mimalloc/options.c
Expand Up @@ -179,8 +179,15 @@ static void mi_out_stderr(const char* msg, void* arg) {
if (!_mi_preloading()) {
// _cputs(msg); // _cputs cannot be used at is aborts if it fails to lock the console
static HANDLE hcon = INVALID_HANDLE_VALUE;
static int write_to_console;
if (hcon == INVALID_HANDLE_VALUE) {
CONSOLE_SCREEN_BUFFER_INFO sbi;
hcon = GetStdHandle(STD_ERROR_HANDLE);
write_to_console = GetConsoleScreenBufferInfo(hcon, &sbi) ? 1 : 0;
}
if (!write_to_console) {
fputs(msg, stderr);
return;
}
const size_t len = strlen(msg);
if (hcon != INVALID_HANDLE_VALUE && len > 0 && len < UINT32_MAX) {
Expand Down

0 comments on commit aa076e0

Please sign in to comment.