Thanks for all the help. It works :) On Thursday, July 11, 2013 10:44:40 AM UTC+1, Ben Noordhuis wrote: > > On Wed, Jul 10, 2013 at 12:25 PM, Luís Miranda > <[email protected]<javascript:>> > wrote: > > So, what you are telling me is something like this will work: > > Basically - but I have a few comments that I'll post inline. > > > #include <uv.h> > > #include <node.h> > > > > #include "hardware.h" > > > > using namespace v8; > > > > uv_loop_t *loop; > > uv_async_t async; > > > > void Interruption_handler(*data){ > > > > async.data = data; > > If you use the .data field, you need to protect access with e.g. a > mutex. See uv_mutex_t in uv.h. > > > uv_async_send(&async); > > > > } > > > > Handle<Value> RunCallback(const Arguments& args) { > > Wrong function prototype, it should be `void RunCallback(uv_async_t* > handle, int status)`. The status field is unused, it's always zero. > > > HandleScope scope; > > > > Local<Function> cb = Local<Function>::Cast(args[0]); > > const unsigned argc = 1; > > Local<Value> argv[argc] = { Local<Value>::New(String::New("hello > world")) > > }; > > cb->Call(Context::GetCurrent()->Global(), argc, argv); > > > > return scope.Close(Undefined()); > > } > > > > Handle<Value> Start(const Arguments& args){ > > HandleScope scope; > > feedback = Hardware_Setup(Interruption_handler); > > return scope.Close(Integer::New(feedback)); > > } > > > > void Init(Handle<Object> exports){ > > node::SetMethod(exports, "RunCallback", RunCallBack) > > node::SetMethod(exports, "Start", Start); > > > > loop = uv_default_loop(); > > uv_async_init(loop, &async, RunCallBack); > > uv_run(loop, UV_RUN_DEFAULT); > > You don't call uv_run(), node.js does that for you when it's time. > > > } > > > > NODE_MODULE(addon, Init) >
-- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
