diff --git a/tools/sheet/index.ts b/tools/sheet/index.ts index 9ba4fa41..ec53e7dc 100644 --- a/tools/sheet/index.ts +++ b/tools/sheet/index.ts @@ -38,8 +38,15 @@ const proc = cp.spawn("magick", [ stdio: ['pipe', 'inherit', 'inherit'] }); +// Write one at a time to avoid "malloc(): corrupted top size" error for (const entry of sheet.entries) { - proc.stdin.write(entry + "\n"); + if (!proc.stdin.write(entry + "\n")) { + // imagick doesn't like it when it receives the input too fast. This + // seems to avoid a realloc() invalid next size error. + await new Promise(resolve => { + proc.stdin.once('drain', resolve); + }); + } } proc.stdin.end();