http://qs1969.pair.com?node_id=738907


in reply to Re: How to wait for events, and not lose any, while processing them ?
in thread How to wait for events, and not lose any, while processing them ?

The code above starts with use Linux::Inotify2, the problem is with processing the events, I don't quite get it how putting up another threads solves the issue, you still need to pause to push the data to another thread.

Replies are listed 'Best First'.
Re^3: How to wait for events, and not lose any, while processing them ?
by roboticus (Chancellor) on Jan 26, 2009 at 15:54 UTC
    Eyck:

    Frequently, event handlers are done in a callback style with very little in the way of resources. (For example, in interrupt handlers, the interrupts may be disabled during the handler body, preventing other interrupt-driven events from being noticed.) So typically, you store the request with as little processing as possible, to allow the event system to get back to its job of collecting events.

    Then your other thread can pull events off the queue and process them. That way, if you have a rapid flurry of events, they'll stack up in the queue. If you tried handling them in the event handler, the rapid flurry of events could be lost.

    Please note that this is a "hand wavy" explanation because there are many similar systems in which the implementation details are different, and I don't know anything about the Linux::Inotify2 package, so I can't comment on any specifics.

    ...roboticus