From d5583b6ec91aead25a943e8f80aaf0ee19452228 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Sun, 11 Aug 2024 17:35:27 +0100 Subject: [PATCH] Try to fix flaky test. --- vfs/shm_bsd.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/vfs/shm_bsd.go b/vfs/shm_bsd.go index ffeb3e0..65674ed 100644 --- a/vfs/shm_bsd.go +++ b/vfs/shm_bsd.go @@ -72,28 +72,28 @@ func (s *vfsShm) Close() error { return nil } - // Unlock everything. - s.shmLock(0, _SHM_NLOCK, _SHM_UNLOCK) - vfsShmFilesMtx.Lock() defer vfsShmFilesMtx.Unlock() + // Unlock everything. + s.shmLock(0, _SHM_NLOCK, _SHM_UNLOCK) + // Decrease reference count. if s.vfsShmFile.refs > 1 { s.vfsShmFile.refs-- s.vfsShmFile = nil return nil } + + err := s.File.Close() for i, g := range vfsShmFiles { if g == s.vfsShmFile { vfsShmFiles[i] = nil - break + s.vfsShmFile = nil + return err } } - - err := s.File.Close() - s.vfsShmFile = nil - return err + panic(util.AssertErr()) } func (s *vfsShm) shmOpen() (rc _ErrorCode) { @@ -234,6 +234,8 @@ func (s *vfsShm) shmLock(offset, n int32, flags _ShmFlag) _ErrorCode { s.vfsShmFile.lock[i] = -1 s.lock[i] = true } + default: + panic(util.AssertErr()) } return _OK @@ -256,5 +258,4 @@ func (s *vfsShm) shmUnmap(delete bool) { os.Remove(s.path) } s.Close() - s.vfsShmFile = nil }