On Wed, Apr 5, 2017 at 10:22 AM, Tejas Manohar <te...@segment.com> wrote:
> Thanks! That makes sense. For tickers, would you expect there to be loud
> failures (e.g. panics) or silent delays under high load? Seems like silent
> delays. I think this is acceptable for Go but am more wondering if I'm
> missing anything.

Silent delays.

Ian


> On Wed, Apr 5, 2017 at 6:26 AM Ian Lance Taylor <i...@golang.org> wrote:
>>
>> On Wed, Apr 5, 2017 at 12:02 AM,  <te...@segment.com> wrote:
>> > What guarantees do Golang's timers (e.g. time.After, time.Sleep)
>> > provide? If
>> > you're using lots of timers concurrently, what (if anything) could cause
>> > them to misbehave (e.g. delay)? What are they bottlenecked by?
>>
>> They don't provide any guarantees other than best effort.  Go is not a
>> hard real time programming language.
>>
>> In the current implementation, if you are adding and/or removing a
>> very large number of timers from different goroutines running
>> concurrently, then I think the bottleneck would be the single lock on
>> runtime.timers.  If you have a very large number of tickers, then I
>> think the bottleneck would be the runtime managing the heap of timers
>> that keeps the next one to fire on the top.  Those are just my
>> guesses, though, I haven't tried to verify them.
>>
>> Ian
>
> --
>
> Best regards,
>
> Tejas Manohar

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to