You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I thought that I was careful and avoided opportunities for deadlocks. I was incorrect. Both DashMap::get() and DashMap::get_mut() can deadlock, which are used extensively. This should be rare but was the core issue behind #23. Either a more measured approach to acquisition needs to be implemented or those maps need to be swapped for an async type.
The text was updated successfully, but these errors were encountered:
Because the throughput required of any given item in a DashMap is at most on the order of 100 requests per hour, a simple async spin lock should suffice. See b60bbe4 for the implementation of said spin lock.
This was almost entirely addressed in dc426c9. There is still one outstanding issue that doesn't have an apparent solution. DashMap::insert can cause a deadlock; however, it doesn't have a 'try' counterpart like the get methods. So, a spin lock can't be used. The chances of this causing problems are very small.
I thought that I was careful and avoided opportunities for deadlocks. I was incorrect. Both
DashMap::get()
andDashMap::get_mut()
can deadlock, which are used extensively. This should be rare but was the core issue behind #23. Either a more measured approach to acquisition needs to be implemented or those maps need to be swapped for an async type.The text was updated successfully, but these errors were encountered: