summaryrefslogtreecommitdiff
path: root/wasm/asyncify.h
blob: 49eb125593af3e43ae02f3ebee33d1eed71a7069 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef RB_WASM_SUPPORT_ASYNCIFY_H
#define RB_WASM_SUPPORT_ASYNCIFY_H

__attribute__((import_module("asyncify"), import_name("start_unwind")))
void asyncify_start_unwind(void *buf);
#define asyncify_start_unwind(buf) do {  \
    extern void *rb_asyncify_unwind_buf; \
    rb_asyncify_unwind_buf = (buf);      \
    asyncify_start_unwind((buf));        \
  } while (0)
__attribute__((import_module("asyncify"), import_name("stop_unwind")))
void asyncify_stop_unwind(void);
#define asyncify_stop_unwind() do {      \
    extern void *rb_asyncify_unwind_buf; \
    rb_asyncify_unwind_buf = NULL;       \
    asyncify_stop_unwind();              \
  } while (0)
__attribute__((import_module("asyncify"), import_name("start_rewind")))
void asyncify_start_rewind(void *buf);
__attribute__((import_module("asyncify"), import_name("stop_rewind")))
void asyncify_stop_rewind(void);

#endif