switch from package syscall to x/sys/unix

The syscall package is locked down and the comment in [1] advises to
switch code to use the corresponding package from golang.org/x/sys. Do
so and replace usage of package syscall with package
golang.org/x/sys/unix where applicable.

  [1] https://github.com/golang/go/blob/master/src/syscall/syscall.go#L21-L24

This will also allow to get updates and fixes for syscall wrappers
without having to use a new go version.

Errno, Signal and SysProcAttr aren't changed as they haven't been
implemented in /x/sys/. Stat_t from syscall is used if standard library
packages (e.g. os) require it. syscall.SIGTERM is used for
cross-platform files.
This commit is contained in:
Tobias Klauser
2017-07-20 13:44:19 +02:00
parent 1fd18181ab
commit 4a69005fa1
24 changed files with 52 additions and 38 deletions

View File

@@ -18,12 +18,12 @@ limitations under the License.
package flock
import "syscall"
import "golang.org/x/sys/unix"
// Acquire acquires a lock on a file for the duration of the process. This method
// is reentrant.
func Acquire(path string) error {
fd, err := syscall.Open(path, syscall.O_CREAT|syscall.O_RDWR, 0600)
fd, err := unix.Open(path, unix.O_CREAT|unix.O_RDWR, 0600)
if err != nil {
return err
}
@@ -31,5 +31,5 @@ func Acquire(path string) error {
// We don't need to close the fd since we should hold
// it until the process exits.
return syscall.Flock(fd, syscall.LOCK_EX)
return unix.Flock(fd, unix.LOCK_EX)
}