Print this page
enable v8plus_call to be used in any thread

*** 110,119 **** --- 110,120 ---- extern int nvlist_lookup_v8plus_jsfunc(const nvlist_t *, const char *, v8plus_jsfunc_t *); extern int nvpair_value_v8plus_jsfunc(const nvpair_t *, v8plus_jsfunc_t *); extern void v8plus_jsfunc_hold(v8plus_jsfunc_t); extern void v8plus_jsfunc_rele(v8plus_jsfunc_t); + extern void v8plus_jsfunc_rele_direct(v8plus_jsfunc_t); /* * Place or release a hold on the V8 representation of the specified C object. * This is rarely necessary; v8plus_defer() performs this action for you, but * other asynchronous mechanisms may require it. If you are returning from
*** 122,131 **** --- 123,133 ---- * must be balanced. Use of the object within a thread after releasing is a * bug. */ extern void v8plus_obj_hold(const void *); extern void v8plus_obj_rele(const void *); + extern void v8plus_obj_rele_direct(const void *); /* * Convenience functions for dealing with JS arguments. */ extern v8plus_type_t v8plus_typeof(const nvpair_t *);
*** 152,161 **** --- 154,164 ---- * Call an opaque JavaScript function from C. The caller is responsible for * freeing the returned list. The first argument is not const because it is * possible for the JS code to modify the function represented by the cookie. */ extern nvlist_t *v8plus_call(v8plus_jsfunc_t, const nvlist_t *); + extern nvlist_t *v8plus_call_direct(v8plus_jsfunc_t, const nvlist_t *); /* * Call the named JavaScript function in the context of the JS object * represented by the native object. Calling and return conventions are the * same as for the C interfaces; i.e., the nvlist will be converted into JS