You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

lock_request_builder.go 659 B

12345678910111213141516171819202122232425262728293031
  1. package reqbuilder
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkg/distlock"
  4. "gitlink.org.cn/cloudream/common/pkg/distlock/service"
  5. mylo "gitlink.org.cn/cloudream/common/utils/lo"
  6. )
  7. type LockRequestBuilder struct {
  8. locks []distlock.Lock
  9. }
  10. func NewBuilder() *LockRequestBuilder {
  11. return &LockRequestBuilder{}
  12. }
  13. func (b *LockRequestBuilder) Build() distlock.LockRequest {
  14. return distlock.LockRequest{
  15. Locks: mylo.ArrayClone(b.locks),
  16. }
  17. }
  18. func (b *LockRequestBuilder) MutexLock(svc *service.Service) (*service.Mutex, error) {
  19. mutex := service.NewMutex(svc, b.Build())
  20. err := mutex.Lock()
  21. if err != nil {
  22. return nil, err
  23. }
  24. return mutex, nil
  25. }

公共库

Contributors (1)