How are you using libev? Isn't that deprecated since v0.8?

On Monday, June 10, 2013 5:13:11 PM UTC+9, Tim Wu wrote:
>
> Hi! 
>
> We're building an embedded system project with NodeJS.  
> A tough issue we're struggling with is that this system must react a 
> certain external hardware input signal within 100ms.
>
> The input signal's event flow from hardware to NodeJS are pretty typical 
> as below.
>  
> K1. interrupt happens and the irq handler at the driver enqueues an event
> K2. awake user processes waiting for events
> K3. processes sleeping in poll or read handler got awaken.  They dequeue 
> the event and return.
>
> U1. When an event is ready to read for user process, the I/O watcher 
> callback ( in nodejs native addon) got called. 
> U2. I/O watcher handler call the pre-registered JS callbacks.  In our 
> case, all the logics are processed here.
>
> The processor is 800Mhz ARM9.  Most of the time, the CPU utilization is 
> low than 10%(observed from top).
> We did some time measurements.   Mostly the time elapsed between K1 and U2 
> is around 20ms~30ms however  sometimes it gets over  120ms.
>
> After some investigation,  we found that the logic processing callback is 
> probably blocked/delayed by other JS callbacks.
>
> Based on our understanding, all JS functions are performed in single event 
> loop.  We guess that if we want certain functions not to be blocked, we 
> should run it in another loop  run by another thread.   So we soon add some 
> code like the following.
>  
> 1. create a new event loop via ev_loop_new() 
> 2. attach the io watcher into this loop via ev_io_start
> 3. run this loop in a new created thread.
>
> This thread basically works  and the IO watcher callbacks get run very 
> soon once upon interrupt happens.  However,  it crashes when we call 
> standard V8 functions to create JS objects like String::New.
>
> We are stuck here.  Besides the question above, we're even not sure  if 
> our approach is right.
> Hope someone experienced can give us tips.  Thanks you.
>
>

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


Reply via email to