aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/shed/namespaces/Std/Process.c
blob: 88fa9b6d937e6fcdb8918cf667973ce9cbb48efa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "../../std/unistd.h"

#include "../../shed.h"
#include "./Process.h"

#ifdef __wasm__

void wasi_proc_exit(uint32_t exitcode)
    __attribute__((
        __import_module__("wasi_snapshot_preview1"),
        __import_name__("proc_exit"),
    ));

ShedObject shed__runtime__namespace__Std__Process__exit(
    ShedClosurePointer closurePointer,
    ShedObject exitCode
) {
    wasi_proc_exit(shed__runtime__int_value(exitCode));
    return shed_unit;
}

#else

#include <stdlib.h>

ShedObject shed__runtime__namespace__Std__Process__exit(
    ShedClosurePointer closurePointer,
    ShedObject exitCode
) {
    exit(shed__runtime__int_value(exitCode));
    return shed_unit;
}

#endif