Size: a a a

2020 April 30

Y

Yury in Go-go!
а всё. посмотрел реализацию. таймер планирует не отрезок времени, а до какого времени
источник

АП

Александр Попов... in Go-go!
Yury
а всё. посмотрел реализацию. таймер планирует не отрезок времени, а до какого времени
а он что каждый раз проверяет сколько времени?
источник

АП

Александр Попов... in Go-go!
и как часто?
источник

C

Calculon in Go-go!
Александр Попов
а он что каждый раз проверяет сколько времени?
неее, это бред
источник

Y

Yury in Go-go!
Александр Попов
а он что каждый раз проверяет сколько времени?
выходит что так.
func NewTimer(d Duration) *Timer {
 c := make(chan Time, 1)
 t := &Timer{
   C: c,
   r: runtimeTimer{
     when: when(d),
     f:    sendTime,
     arg:  c,
   },
 }
 startTimer(&t.r)
 return t
}

нас интересует when(d)

// when is a helper function for setting the 'when' field of a runtimeTimer.
// It returns what the time will be, in nanoseconds, Duration d in the future.
// If d is negative, it is ignored. If the returned value would be less than
// zero because of an overflow, MaxInt64 is returned.
func when(d Duration) int64 {
 if d <= 0 {
   return runtimeNano()
 }
 t := runtimeNano() + int64(d)
 if t < 0 {
   t = 1<<63 - 1 // math.MaxInt64
 }
 return t
}
источник

Y

Yury in Go-go!
т.е. duration переводится в рантоймовские наносекунды даты вызова
источник

АП

Александр Попов... in Go-go!
а проверяет то он как?
источник

DP

Daniel Podolsky in Go-go!
кто?
источник

АП

Александр Попов... in Go-go!
таймер
источник

Y

Yury in Go-go!
Александр Попов
а проверяет то он как?
хз, что в го обозначает объявление функции без ее реализации?)
источник

АП

Александр Попов... in Go-go!
ну получили что нам надо сработать через nn наносек, нам что каждую наносек проверять что надо отработать?
источник

DP

Daniel Podolsky in Go-go!
таймер ничего не проверяет сам, он системный  alarm использует
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
таймер ничего не проверяет сам, он системный  alarm использует
а как работает системный alarm? :)
источник

DP

Daniel Podolsky in Go-go!
это надо в другом чатике спрашивать
источник

DP

Daniel Podolsky in Go-go!
скорее всего - висит на прерывании от часов
источник

АП

Александр Попов... in Go-go!
это относится к вопросу про точность "гошного таймера"
источник

C

Calculon in Go-go!
источник

DP

Daniel Podolsky in Go-go!
в msdos прерывание от системных часов происходило стандартно 18 раз в секунду, но про современные системы я ничего не знаю в этом смысле
источник

DP

Daniel Podolsky in Go-go!
Александр Попов
это относится к вопросу про точность "гошного таймера"
вообще-то нет, это про точность системного таймера
источник

Y

Yury in Go-go!
вроде с большего понятней стало... только интересно почему работа с системным временем идет через network poller, или это просто назвали так. сильно уже не углублялся
источник