• Evan Jones's avatar
    syscall: use setattrlist for UtimesNano on Darwin for ns resolution · eb2b0ed5
    Evan Jones authored
    Mac OS X 10.13 introduced APFS which stores nanosecond resolution
    timestamps. The implementation of os.Stat already returns full
    resolution timestamps, but os.Chtimes only sets timestamps with
    microsecond resolution.
    
    Fix this by using setattrlist on Darwin, which takes a struct timeval
    with nanosecond resolution. This is what Mac OS X 10.13 appears uses
    to implement utimensat, according to dtruss.
    
    Fixes #22528
    
    Change-Id: I397dabef6b2b73a081382999aa4c4405ab8c6015
    Reviewed-on: https://go-review.googlesource.com/74952
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    eb2b0ed5
syscall_darwin.go 13 KB