From: Dmitriy Vyukov Date: Tue, 5 Mar 2013 07:38:15 +0000 (+0200) Subject: runtime: declare addtimer/deltimer in runtime.h X-Git-Tag: go1.1rc2~688 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d0c11d20b8eeebcdf2ab597c3b494e40287f9c9b;p=gostls13.git runtime: declare addtimer/deltimer in runtime.h In preparation for integrated network poller (https://golang.org/cl/7326051), this is required to handle deadlines. R=golang-dev, remyoudompheng, rsc CC=golang-dev https://golang.org/cl/7446047 --- diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h index 9b43f29a59..585d6a536e 100644 --- a/src/pkg/runtime/runtime.h +++ b/src/pkg/runtime/runtime.h @@ -761,6 +761,8 @@ int64 runtime·cputicks(void); int64 runtime·tickspersecond(void); void runtime·blockevent(int64, int32); extern int64 runtime·blockprofilerate; +void runtime·addtimer(Timer*); +bool runtime·deltimer(Timer*); #pragma varargck argpos runtime·printf 1 #pragma varargck type "d" int32 diff --git a/src/pkg/runtime/time.goc b/src/pkg/runtime/time.goc index 2babb173df..6de989f515 100644 --- a/src/pkg/runtime/time.goc +++ b/src/pkg/runtime/time.goc @@ -15,7 +15,6 @@ package time static Timers timers; static void addtimer(Timer*); -static bool deltimer(Timer*); // Package time APIs. // Godoc uses the comments in package time, not these. @@ -31,15 +30,13 @@ func Sleep(ns int64) { func startTimer(t *Timer) { if(raceenabled) runtime·racerelease(t); - runtime·lock(&timers); - addtimer(t); - runtime·unlock(&timers); + runtime·addtimer(t); } // stopTimer removes t from the timer heap if it is there. // It returns true if t was removed, false if t wasn't even there. func stopTimer(t *Timer) (stopped bool) { - stopped = deltimer(t); + stopped = runtime·deltimer(t); } // C runtime. @@ -79,6 +76,14 @@ runtime·tsleep(int64 ns, int8 *reason) static FuncVal timerprocv = {timerproc}; +void +runtime·addtimer(Timer *t) +{ + runtime·lock(&timers); + addtimer(t); + runtime·unlock(&timers); +} + // Add a timer to the heap and start or kick the timer proc // if the new timer is earlier than any of the others. static void @@ -121,8 +126,8 @@ addtimer(Timer *t) // Delete timer t from the heap. // Do not need to update the timerproc: // if it wakes up early, no big deal. -static bool -deltimer(Timer *t) +bool +runtime·deltimer(Timer *t) { int32 i;