12345678910111213141516171819202122 |
- //go:build !windows
- // +build !windows
- package archive
- import "golang.org/x/sys/unix"
- // overrideUmask sets current process's file mode creation mask to newmask
- // and returns a function to restore it.
- //
- // WARNING for readers stumbling upon this code. Changing umask in a multi-
- // threaded environment isn't safe. Don't use this without understanding the
- // risks, and don't export this function for others to use (we shouldn't even
- // be using this ourself).
- //
- // FIXME(thaJeztah): we should get rid of these hacks if possible.
- func overrideUmask(newMask int) func() {
- oldMask := unix.Umask(newMask)
- return func() {
- unix.Umask(oldMask)
- }
- }
|