Skip to content
This repository has been archived by the owner on Nov 14, 2021. It is now read-only.

CountedSyncMap has a race condition. #4

Closed
Tillaert opened this issue Oct 22, 2020 · 1 comment
Closed

CountedSyncMap has a race condition. #4

Tillaert opened this issue Oct 22, 2020 · 1 comment

Comments

@Tillaert
Copy link

Your environment.

  • Version: c11bee9
  • Browser: n/a
  • Other Information -

What did you do?

has a race conditon.

The sync.Map and the len variable are not controlled by mutex/atomic operation. So they can be modified by different threads independently. During a simultanous add and delete, a non empty room can be destroyed. This seems to be a race condition?

What did you expect?

No race conditions present.

What happened?

@Sean-Der
Copy link
Member

@Tillaert that is an excellent point! You are right, we need to perform transactions. I would change sync.Map to just a normal map. Then just put a mutex on the entire structure.

If you have interest in this repo I would love to give you write access! I think it would be great if we had a simple signaler for people to use. We could also extend to do other useful things. I just don't have the bandwidth myself :(

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants