LockComponent.cs 589 B

12345678910111213141516171819202122232425
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net;
  4. using System.Threading.Tasks;
  5. namespace ETModel
  6. {
  7. public enum LockStatus
  8. {
  9. LockedNot,
  10. LockRequesting,
  11. Locked,
  12. }
  13. /// <summary>
  14. /// 分布式锁组件,Unit对象可能在不同进程上有镜像,访问该对象的时候需要对他加锁
  15. /// </summary>
  16. public class LockComponent: Component
  17. {
  18. public LockStatus status = LockStatus.LockedNot;
  19. public IPEndPoint address;
  20. public int lockCount;
  21. public readonly Queue<ETTaskCompletionSource<bool>> queue = new Queue<ETTaskCompletionSource<bool>>();
  22. }
  23. }