This serie of patches try fix the problem of the timeout in main loop, which
causes st wakeup each 20 ms even thare is noting to do.
Please send comments and suggestion.
Best regards.
From 48aac423ea93820f8a406da3f4e53c8ce4bcb2a6 Mon Sep 17 00:00:00 2001
From: Roberto E. Vargas Caballero
* Roberto E. Vargas Caballero k...@shike2.com [2012-09-16 09:48]:
The main loop waits until there is some data to read in file descriptors of
the X server or the pseudo tty. But it uses a timeout in select(), which
causes that st awake each 20 ms, even it doesn't have something to do. This
On Sun, Sep 16, 2012 at 9:47 AM, Roberto E. Vargas Caballero
k...@shike2.com wrote:
This serie of patches try fix the problem of the timeout in main loop, which
causes st wakeup each 20 ms even thare is noting to do.
The timeout problem was introduced to speed up the rendering when a
lot of
On Sun, Sep 16, 2012 at 11:51 AM, Aurélien Aptel
aurelien.ap...@gmail.com wrote:
- try to read data for SELECT_TIMEOUT ms max
- if something was read, handle it in the term
- if something was read and the last call to draw was more than
DRAW_TIMEOUT ms ago then redraw.
In retrospect, the
The timeout problem was introduced to speed up the rendering when a
lot of text is printed.
The logic is basically to not redraw on every read when the throughput is
high:
I tried do the same thing putting the draw at the end of the loop, so if you
have a high throughput you will read more
Maybe a way to improve my patches is testing is some data can be read from
the file descriptors and in this case continue the loop. something like:
if(i++ 4) {
struct timeval tv = {0};
FD_ZERO(rfd);
FD_SET(cmdfd, rfd);
Hello.
On Sun, 16 Sep 2012 12:26:21 +0200 Aurélien Aptel aurelien.ap...@gmail.com
wrote:
On Sun, Sep 16, 2012 at 9:47 AM, Roberto E. Vargas Caballero
k...@shike2.com wrote:
This serie of patches try fix the problem of the timeout in main loop, which
causes st wakeup each 20 ms even thare
On Sun, Sep 16, 2012 at 12:26 PM, Christoph Lohmann 2...@r-36.net wrote:
If there is something to read from the tty, handle it, then wait for
five microseconds in select() and see if the buffer filled again. If
yes, handle this and do it again. After a certain amount of such loops
Hello.
On Sun, 16 Sep 2012 14:00:44 +0200 Aurélien Aptel aurelien.ap...@gmail.com
wrote:
On Sun, Sep 16, 2012 at 12:26 PM, Christoph Lohmann 2...@r-36.net wrote:
If there is something to read from the tty, handle it, then wait for
five microseconds in select() and see if the buffer