On Wed, 2008-08-27 at 11:28 +0200, Wilfred van Velzen wrote:
Roger,
Are you reading the compoort like this:
TEMP_FAILURE_RETRY(read(comDev, str, len));
For info on this see for instance:
http://www.gnu.org/software/libtool/manual/libc/Interrupted-Primitives.html
Interesting link. Not using this. It is describing the issue of non-restartable system calls. We always set up our signal handlers to specify SA_RESTART. But our problem happens even when the application does not get a signal or other asynchronous interrupt. We have no trouble with a read() call getting interrupted by some signal to the program. Occasional read returns with no data or incomplete data are no problem. What happens in our case is that the reads start returning immediately. So the application is suddenly using all available CPU time because it is doing reads as fast as it can, with only 1 in a 1000 actually providing data. I forgot to mention that I use strace to see all that is happening. -- Roger Oberholtzer OPQ Systems / Ramböll RST Ramböll Sverige AB Kapellgränd 7 P.O. Box 4205 SE-102 65 Stockholm, Sweden Office: Int +46 8-615 60 20 Mobile: Int +46 70-815 1696 And remember: It is RSofT and there is always something under construction. It is like talking about large city with all constructions finished. Not impossible, but very unlikely. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org