| // Copyright 2022 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. | |
| package poll | |
| // Expose fdMutex for use by the os package on Plan 9. | |
| // On Plan 9 we don't want to use async I/O for file operations, | |
| // but we still want the locking semantics that fdMutex provides. | |
| // FDMutex is an exported fdMutex, only for Plan 9. | |
| type FDMutex struct { | |
| fdmu fdMutex | |
| } | |
| func (fdmu *FDMutex) Incref() bool { | |
| return fdmu.fdmu.incref() | |
| } | |
| func (fdmu *FDMutex) Decref() bool { | |
| return fdmu.fdmu.decref() | |
| } | |
| func (fdmu *FDMutex) IncrefAndClose() bool { | |
| return fdmu.fdmu.increfAndClose() | |
| } | |
| func (fdmu *FDMutex) ReadLock() bool { | |
| return fdmu.fdmu.rwlock(true) | |
| } | |
| func (fdmu *FDMutex) ReadUnlock() bool { | |
| return fdmu.fdmu.rwunlock(true) | |
| } | |
| func (fdmu *FDMutex) WriteLock() bool { | |
| return fdmu.fdmu.rwlock(false) | |
| } | |
| func (fdmu *FDMutex) WriteUnlock() bool { | |
| return fdmu.fdmu.rwunlock(false) | |
| } | |