/*
 * exit — нормальное завершение: смотать цепочку atexit-хендлеров
 * (LIFO), затем сырое завершение _exit() (ESTEX EXIT).
 */

#include <stdlib.h>
#include <sprinter_exit.h>
#include "_atexit.h"

void exit(int code)
{
    while (_atexit_top > 0) {
        void (*fn)(void) = _atexit_stack[--_atexit_top];
        if (fn) {
            fn();
        }
    }
    _exit(code);
}
