diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-04-19 02:18:28 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-04-19 02:18:28 +0200 |
commit | 283a1c0788a89493a5a0a46c561d19f2231b9227 (patch) | |
tree | 9fbb985621049e303a1a519b879b071392208854 | |
parent | 219050cc36b169a1f55b5441553bc8e123ddfa7e (diff) | |
download | plan9front-283a1c0788a89493a5a0a46c561d19f2231b9227.tar.xz |
vt: but not too fast :-)
if drawing can't keep up with the host, make sure we
eventually redraw the screen and check for user events.
-rw-r--r-- | sys/src/cmd/vt/main.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/src/cmd/vt/main.c b/sys/src/cmd/vt/main.c index 7dc022f82..a7c6091c8 100644 --- a/sys/src/cmd/vt/main.c +++ b/sys/src/cmd/vt/main.c @@ -645,7 +645,7 @@ waitchar(void) return(rcvchar()); free(hostbuf); hostbufp = hostbuf = nbrecvp(hc); - if(host_avail()) + if(host_avail() && nrand(8)) return(rcvchar()); } drawscreen(); @@ -662,10 +662,13 @@ waitio(void) { mc->c, &mc->Mouse, CHANRCV }, { mc->resizec, nil, CHANRCV }, { kc->c, &kbdchar, CHANRCV }, - { hc, &hostbuf, CHANNOP }, + { hc, &hostbuf, CHANRCV }, { nil, nil, CHANEND }, }; - if(hostbuf == nil) a[AHOST].op = CHANRCV; + if(blocked) + a[AHOST].op = CHANNOP; + else if(hostbuf != nil) + a[AHOST].op = CHANNOBLK; Next: if(display->bufp > display->buf) flushimage(display, 1); |