/
/
opt
/
golang
/
1.22.0
/
src
/
cmd
/
go
/
internal
/
lockedfile
/
internal
/
filelock
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.137
PHP 8.3.16
Dir:
/opt/golang/1.22.0/src/cmd/go/internal/lockedfile/internal/filelock
Edit:
/opt/golang/1.22.0/src/cmd/go/internal/lockedfile/internal/filelock/filelock_windows.go
// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build windows package filelock import ( "internal/syscall/windows" "io/fs" "syscall" ) type lockType uint32 const ( readLock lockType = 0 writeLock lockType = windows.LOCKFILE_EXCLUSIVE_LOCK ) const ( reserved = 0 allBytes = ^uint32(0) ) func lock(f File, lt lockType) error { // Per https://golang.org/issue/19098, “Programs currently expect the Fd // method to return a handle that uses ordinary synchronous I/O.” // However, LockFileEx still requires an OVERLAPPED structure, // which contains the file offset of the beginning of the lock range. // We want to lock the entire file, so we leave the offset as zero. ol := new(syscall.Overlapped) err := windows.LockFileEx(syscall.Handle(f.Fd()), uint32(lt), reserved, allBytes, allBytes, ol) if err != nil { return &fs.PathError{ Op: lt.String(), Path: f.Name(), Err: err, } } return nil } func unlock(f File) error { ol := new(syscall.Overlapped) err := windows.UnlockFileEx(syscall.Handle(f.Fd()), reserved, allBytes, allBytes, ol) if err != nil { return &fs.PathError{ Op: "Unlock", Path: f.Name(), Err: err, } } return nil }
Ukuran: 1.3 KB