diff options
| author | 2021-07-16 20:59:03 -0500 | |
|---|---|---|
| committer | 2021-07-16 20:59:03 -0500 | |
| commit | 1ef6db16eda21f4b8cbb73682dcd388e36fe1202 (patch) | |
| tree | aabff07d725707e548cf45829bf482e0f3d60000 /src/include/janet.h | |
| parent | Delete jpm and related testing from this repository. (diff) | |
Add janet_vm_save and janet_vm_load.
This lets a user multiplex multiple Janet VMs on a single
thread or process if they are willing to implement context switching
themselves.
Diffstat (limited to 'src/include/janet.h')
| -rw-r--r-- | src/include/janet.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/janet.h b/src/include/janet.h index 296df0e6..f07074dd 100644 --- a/src/include/janet.h +++ b/src/include/janet.h @@ -365,6 +365,9 @@ typedef enum { JANET_STATUS_ALIVE } JanetFiberStatus; +/* For encapsulating all thread-local Janet state (except natives) */ +typedef struct JanetVM JanetVM; + /* Use type punning for GC objects */ typedef struct JanetGCObject JanetGCObject; @@ -1641,6 +1644,10 @@ JANET_API int32_t janet_sorted_keys(const JanetKV *dict, int32_t cap, int32_t *i /* VM functions */ JANET_API int janet_init(void); JANET_API void janet_deinit(void); +JANET_API JanetVM *janet_vm_alloc(void); +JANET_API void janet_vm_free(JanetVM *vm); +JANET_API void janet_vm_save(JanetVM *into); +JANET_API void janet_vm_load(JanetVM *from); JANET_API JanetSignal janet_continue(JanetFiber *fiber, Janet in, Janet *out); JANET_API JanetSignal janet_continue_signal(JanetFiber *fiber, Janet in, Janet *out, JanetSignal sig); JANET_API JanetSignal janet_pcall(JanetFunction *fun, int32_t argn, const Janet *argv, Janet *out, JanetFiber **f); |
