Remix.run Logo
yruzin 10 hours ago

Spoiler for the quiz below.

The defer delays the function call, but it does not delay evaluation of the call’s arguments. This means that both timestamps are therefore captured near the beginning of the request, even though the second line is printed when the handler returns. Also, time.Since can use the monotonic component stored in time.Time, so the duration is not distorted by wall-clock corrections.

start := time.Now() defer func() { log.Printf("request completed in %s", time.Since(start)) }()

The answer is A: the two timestamps are approximately the same.

Thanks for posting this! This is fun :)

kristianp 10 hours ago | parent [-]

Ok. but why are you posting a spoiler?

yruzin 8 hours ago | parent [-]

Sorry, my bad :)