Hey guys,
I'm quite a beginner at C++ but I still try to create a node addon in order 
to use a c++ library in node.
I got it working partially but I have a few problems and questions:

1. The library I'm using will stay during the whole life of the node 
process and needs to run in an own thread. Is there a "native" way to 
create threads? I'm using pthreads but I guess there is a better way. I 
looked into libuv and in the last git master there is a function 
`uv_thread_create`. Is this what I'm looking for? I'm currently building 
with latest node.js stable and this function is not yet implemented there. 
I could probably also use `uv_queue_work` to create a worker in Node's 
thread pool but I believe this is not a good idea since the worker will 
never complete and will take a thread from the pool for the whole runtime.

2. I have trouble using libuv's ref counter in order to keep the main Node 
thread stay alive. Node should stay until the thread from question 1 exists 
and should be able to handle callbacks in the meantime. (I didn't implement 
callbacks yet)
In order to do this I called `uv_ref (uv_default_loop ());` and Node will 
stay open. However here is my problem:
When the thread is about to exit I call `uv_unref(uv_default_loop());` but 
Node will not terminate. `uv_loop_refcount(uv_default_loop())` shows 1 
before that call and 0 after. Shouldn't Node terminate when the count is 0? 
Is it because I'm calling from a different thread? Or is this even a 
complete wrong way to keep Node stay open? Without any good documentation 
or tutorial I find libuv hard to understand.

Thanks for your time!

-- 
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

Reply via email to