498b235461
Build and test / Build and test AMD64 Ubuntu 22.04 (push) Failing after 0s
Publish Builder / amazonlinux2023 (push) Failing after 1s
Build and test / UT for Go (push) Has been skipped
Publish KRTE Images / KRTE (push) Failing after 1s
Build and test / Integration Test (push) Has been skipped
Build and test / Upload Code Coverage (push) Has been skipped
Publish Builder / rockylinux9 (push) Failing after 1s
Publish Builder / ubuntu22.04 (push) Failing after 0s
Publish Builder / ubuntu24.04 (push) Failing after 0s
Publish Gpu Builder / publish-gpu-builder (push) Failing after 1s
Publish Test Images / PyTest (push) Failing after 0s
Build and test / UT for Cpp (push) Has been cancelled
28 lines
353 B
Go
28 lines
353 B
Go
package syncutil
|
|
|
|
import "sync"
|
|
|
|
type ClosableLock struct {
|
|
mu sync.Mutex
|
|
closed bool
|
|
}
|
|
|
|
func (l *ClosableLock) LockIfNotClosed() bool {
|
|
l.mu.Lock()
|
|
if l.closed {
|
|
l.mu.Unlock()
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
func (l *ClosableLock) Unlock() {
|
|
l.mu.Unlock()
|
|
}
|
|
|
|
func (l *ClosableLock) Close() {
|
|
l.mu.Lock()
|
|
l.closed = true
|
|
l.mu.Unlock()
|
|
}
|