On 12/11/06, Josef Weidendorfer <Josef.Weidendorfer@xxxxxx> wrote:
On Monday 11 December 2006 01:15, Marco Costalba wrote: > guiUpdateTimer.start(100, true); What is the result with "guiUpdateTimer.start(0, true);" ? There is no need to put in any time interval at all, because the timeout is a normal event which will be queued in the GUI event queue. If there were X events in the mean time, they are queued and handled before your timeOut function is called again. So the GUI will be responsive, even if you have a 0 ms timer.
IOW you suggest to use a brute force polling of the pipe. I'will try this, just to test the pipe, not the application because I would really need to read data in big chunks. Data read from pipe/file or something else is read in an array (char* []) and do not touched anymore, no more copies are made. For every read a new array is allocated on the heap. With chunks of 64KB, because each rev descriptions is about few hundered bytes only few revs (about 1% with current linux tree) fall at the boundary of the chunk, half in one and the rest in the next. This boundary revs require a special handling that at the end involves an additional copy. If I get from the pipe very small data (few KB) probably it would be better to read always in a local array of fixed size and then copy to final destination in memory. But this imply that all the data work copy is duplicated: instead of 30MB of data we'll going to move 60MB (linux tree) With big chunks of 64KB only about 1% of data (revs that fall at the array boundary) is duplicated. Marco - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html