> Isn't there a race condition here: before you switch from the C stack to the > assembler stack, this code must run. Is that currently the case? > (Actually it probably is since I think that main() is written in C.) Yes. See x86codegen.h. The C code for main() calls MLton_init, which calls GC_init, which calls sigaltstack. This happens before switching to the assembler stack.