diff options
| author | David du Colombier <0intro@gmail.com> | 2013-09-23 23:16:25 +0200 |
|---|---|---|
| committer | David du Colombier <0intro@gmail.com> | 2013-09-23 23:16:25 +0200 |
| commit | 4b5766580559d101dd1c29cc575b3ffa9f51c2d7 (patch) | |
| tree | f35364a39e255b1336482ee30217d68279ba8699 /src/cmd/fossil/periodic.c | |
| parent | 6f4d00ee45693290fae042b27536b54f77b96acd (diff) | |
| download | plan9port-4b5766580559d101dd1c29cc575b3ffa9f51c2d7.tar.gz plan9port-4b5766580559d101dd1c29cc575b3ffa9f51c2d7.zip | |
fossil: move from liboventi to libthread and libventi
R=rsc
https://codereview.appspot.com/13504049
Diffstat (limited to 'src/cmd/fossil/periodic.c')
| -rw-r--r-- | src/cmd/fossil/periodic.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/cmd/fossil/periodic.c b/src/cmd/fossil/periodic.c index 8a0c2084..634f975d 100644 --- a/src/cmd/fossil/periodic.c +++ b/src/cmd/fossil/periodic.c @@ -4,7 +4,7 @@ #include "error.h" struct Periodic { - VtLock *lk; + QLock lk; int die; /* flag: quit if set */ void (*f)(void*); /* call this each period */ void *a; /* argument to f */ @@ -18,15 +18,14 @@ periodicAlloc(void (*f)(void*), void *a, int msec) { Periodic *p; - p = vtMemAllocZ(sizeof(Periodic)); - p->lk = vtLockAlloc(); + p = vtmallocz(sizeof(Periodic)); p->f = f; p->a = a; p->msec = msec; if(p->msec < 10) p->msec = 10; - vtThread(periodicThread, p); + proccreate(periodicThread, p, STACK); return p; } @@ -35,16 +34,15 @@ periodicKill(Periodic *p) { if(p == nil) return; - vtLock(p->lk); + qlock(&p->lk); p->die = 1; - vtUnlock(p->lk); + qunlock(&p->lk); } static void periodicFree(Periodic *p) { - vtLockFree(p->lk); - vtMemFree(p); + vtfree(p); } static void @@ -53,7 +51,7 @@ periodicThread(void *a) Periodic *p = a; vlong t, ct, ts; /* times in ms. */ - vtThreadSetName("periodic"); + threadsetname("periodic"); ct = nsec() / 1000000; t = ct + p->msec; /* call p->f at or after this time */ @@ -65,9 +63,9 @@ periodicThread(void *a) if(ts > 0) sleep(ts); /* wait for cycle's start */ - vtLock(p->lk); + qlock(&p->lk); if(p->die){ - vtUnlock(p->lk); + qunlock(&p->lk); break; } ct = nsec() / 1000000; @@ -77,7 +75,7 @@ periodicThread(void *a) while(t <= ct) /* advance t to future cycle start */ t += p->msec; } - vtUnlock(p->lk); + qunlock(&p->lk); } periodicFree(p); } |
