Initialize local nsLocker for gateway instances (#8540)

This commit is contained in:
Harshavardhana
2019-11-19 16:45:35 -08:00
committed by GitHub
parent 7cdb67680e
commit 3a34d98db8
2 changed files with 18 additions and 0 deletions

View File

@@ -26,6 +26,22 @@ import (
"github.com/minio/minio/pkg/policy"
)
// GatewayLocker implements custom NeNSLock implementation
type GatewayLocker struct {
ObjectLayer
nsMutex *nsLockMap
}
// NewNSLock - implements gateway level locker
func (l *GatewayLocker) NewNSLock(ctx context.Context, bucket string, object string) RWLocker {
return l.nsMutex.NewNSLock(ctx, nil, bucket, object)
}
// NewGatewayLayerWithLocker - initialize gateway with locker.
func NewGatewayLayerWithLocker(gwLayer ObjectLayer) ObjectLayer {
return &GatewayLocker{ObjectLayer: gwLayer, nsMutex: newNSLock(false)}
}
// GatewayUnsupported list of unsupported call stubs for gateway.
type GatewayUnsupported struct{}