summaryrefslogtreecommitdiff
path: root/libdeno/deno.h
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2018-10-07 23:48:06 +0200
committerBert Belder <bertbelder@gmail.com>2018-10-08 18:19:32 +0200
commite742af10aa67dc90a68fcb60b8e70733fd753e68 (patch)
treebc9d7360c5a8cb94e93f9dabf5749b94addc0c18 /libdeno/deno.h
parentd86e5d2605c68606c8073d1b563d3389ea93c112 (diff)
Abide by the rules when passing Isolate between c and rust
Ensure that at most one mutable Isolate reference exists at a time. `deno_execute()` and `deno_respond()` now borrow a reference to the rust-side isolate from the caller. When we need a reference to the isolate while one of these functions is on the stack, `deno_get_data()` can be used to borrow back that reference.
Diffstat (limited to 'libdeno/deno.h')
-rw-r--r--libdeno/deno.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/libdeno/deno.h b/libdeno/deno.h
index d3c2cf762..c166c7fde 100644
--- a/libdeno/deno.h
+++ b/libdeno/deno.h
@@ -30,7 +30,7 @@ void deno_init();
const char* deno_v8_version();
void deno_set_v8_flags(int* argc, char** argv);
-Deno* deno_new(void* user_data, deno_recv_cb cb);
+Deno* deno_new(deno_recv_cb cb);
void deno_delete(Deno* d);
// Returns the void* user_data provided in deno_new.
@@ -39,7 +39,8 @@ void* deno_get_data(Deno*);
// Returns false on error.
// Get error text with deno_last_exception().
// 0 = fail, 1 = success
-int deno_execute(Deno* d, const char* js_filename, const char* js_source);
+int deno_execute(Deno* d, void* user_data, const char* js_filename,
+ const char* js_source);
// deno_respond sends up to one message back for every deno_recv_cb made.
//
@@ -59,7 +60,7 @@ int deno_execute(Deno* d, const char* js_filename, const char* js_source);
//
// A non-zero return value, means a JS exception was encountered during the
// libdeno.recv() callback. Check deno_last_exception() for exception text.
-int deno_respond(Deno* d, int32_t req_id, deno_buf buf);
+int deno_respond(Deno* d, void* user_data, int32_t req_id, deno_buf buf);
const char* deno_last_exception(Deno* d);