$ the-wire · showcase
Windows CPU profiler timer fallback, plus vet cache race fix
By RepoJournal · Filed · About Go · Composed from the cited sources · methodology
Three fixes land in the Go tree: the runtime now recovers when the high-resolution profiler timer rejects its period, vet stops leaving half-written cache entries, and reflect stops stamping map flags onto iteration temporaries.
runtime: fall back to a regular timer when the high-res profiler timer rejects a period golang/go
On Windows 10 1803/1809 and Windows Server 2019, CreateWaitableTimerExW accepts CREATE_WAITABLE_TIMER_HIGH_RESOLUTION but SetWaitableTimer then fails with ERROR_INVALID_PARAMETER for a nonzero period, and setThreadCPUProfiler armed the timer without checking the result. The patch falls back to a regular timer when the period is rejected, so CPU profiling keeps working on those builds instead of...
vet: fix GOCACHE read/write race golang/go
Vet cache reads and writes were meant to be all-or-nothing and were not: a write could stop half-finished if VetHandleStdout returned an error after the id and fixArchiveKey were already written, and the read path had no cache-miss fallback when copying the cached .stdout file. Both paths now satisfy the transactional goal, so a vet run built on a damaged cache entry recovers rather than propag...
reflect: don't put map flags in SetIter{Key,Value} temporary value golang/go
reflect's SetIterKey and SetIterValue put map flags into the temporary value they built for the key and value fields, even though those flags describe the map, not the fields; Ian Lance Taylor's change drops them and also handles a nil interface value, which assignTo turns into a nil pointer. The fix closes the case tracked as issue 82373.