
Also may want to consider libEv or asio (boost if c++)., which wrap the lower levels and also add in features. libEv is great if you want to keep watchers active while servicing many requests as those watchers fire. For messages across processes, i have used signals, locks and shmem to get pretty optimal. With signals and if your design/use allows you may even be able to go lock-free or a quick atomic lock if arch supports it. If thread, you can use lock-free collections (have some in boost, and if c++14/17, may be in standard now). -tl On Wed, Sep 13, 2017 at 2:35 PM, Lennart Sorensen via talk <talk@gtalug.org> wrote:
On Wed, Sep 13, 2017 at 03:24:25AM -0400, William Park via talk wrote:
I'm looking for keywords to search for...
I have various local peripherals that I need to read and write. From top of my head, I'm thinking 3 ways:
1. Use select(2) (and friends) to round-robin the peripherals.
poll seems more popular these days than select.
2. Each peripheral is serviced by a separate thread, and main thread does the business logics. The peripherals don't need to talk to each other (but this may change).
3. Each peripheral is serviced by a separate process, and they pass "messages". This option is what I want to investigate.
So, do you know any "message-passing" scheme, framework, or library that I can look up? I'm not talking about OS or kernel level. More at application level.
Processes don't get to do anything without OS/kernel support. If you use seperate processes, you will need to use something from the OS/kernel to pass messages.
-- Len Sorensen --- Talk Mailing List talk@gtalug.org https://gtalug.org/mailman/listinfo/talk