ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Greetings:
I am programming a Linux application for an embedded system - the processor is an ARM-Cortex-7 but I'm finding that I can build the code on all sorts of targets with little or no changes.
Anyway, I've run into a delemma: I have processes that block waiting for input from sockets or input from queues or input from USB-serial ports - things like that. It's all very straight-forward.
What I am finding difficult is arranging for a process to unblock itself on an "Either-OR" basis. For example, maybe I have a process that waits for input from a queue but I might also want it to wake up periodically on a timer.
How is this done, generally? Is there are "general" way of doing this or am I being a bit naive? I am finding it surprising how difficult this is.
There are also other Linux programming applications blog entries about a USB receiver/parser, a controlling/monitoring daemon process, and other entries if you wish to peruse.
I feel select() is a great option. You could also consider threads, but generally I prefer processes.
Thanks guys.
I had not known about select() and I had spent a lot of time looking around. It seems like you just have to enter the right search parameters.
I will give this a try.
Mark
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.