tlibdraw: fix spinning event loop (David Bulkow) - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0a98a883d5bc30843f859a1b4f05af1a6906907a
 (DIR) parent 27589754e47a2d2e682ee29daa2d21dff99e509d
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Thu, 10 Jan 2008 21:38:42 -0500
       
       libdraw: fix spinning event loop (David Bulkow)
       
       Diffstat:
         M src/libdraw/event.c                 |      12 ++++++------
       
       1 file changed, 6 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/src/libdraw/event.c b/src/libdraw/event.c
       t@@ -159,7 +159,7 @@ etimer(ulong key, int n)
                if(n <= 0)
                        n = 1000;
                eslave[Stimer].n = n;
       -        eslave[Stimer].nexttick = nsec()+n*1000LL;
       +        eslave[Stimer].nexttick = nsec()+n*1000000LL;
                return 1<<Stimer;
        }
        
       t@@ -295,12 +295,12 @@ extract(int canblock)
                                }
                        }else if(i == Stimer){
                                t0 = nsec();
       -                        if(t0-eslave[i].nexttick <= 0){
       +                        if(t0 >= eslave[i].nexttick){
                                        tv.tv_sec = 0;
                                        tv.tv_usec = 0;
                                }else{
       -                                tv.tv_sec = (t0-eslave[i].nexttick)/1000000000;
       -                                tv.tv_usec = (t0-eslave[i].nexttick)%1000000000 / 1000;
       +                                tv.tv_sec = (eslave[i].nexttick-t0)/1000000000;
       +                                tv.tv_usec = (eslave[i].nexttick-t0)%1000000000 / 1000;
                                }
                                timeout = &tv;
                        }else{
       t@@ -345,8 +345,8 @@ extract(int canblock)
                                }
                        }else if(i == Stimer){
                                t0 = nsec();
       -                        while(t0-eslave[i].nexttick > 0){
       -                                eslave[i].nexttick += eslave[i].n*1000LL;
       +                        while(t0 > eslave[i].nexttick){
       +                                eslave[i].nexttick += eslave[i].n*1000000LL;
                                        eslave[i].head = (Ebuf*)1;
                                        n++;
                                }