ETS: update list value without race condition
Thu Apr 22 13:32:12 CEST 2021
I’ve a little issue I’m unable to solve with the current ETS API.
My table is of type set. Keys are integers and values are list of names:
123 -> [ jane, john, bob ]
456 -> [ joe, alice ]
Process A with Key=123 wants to delete ‘Jane’ while process B with Key=123
wants to add ‘Adam’.
First, they both needs to read the value associated with Key=123, update
that list accordingly and set back the new value.
But this lead to race condition (ex. process B could put back ‘jane’ - last
Could this problem be solved atomically without involving explicit locking
Is there any other better way to represent this data set which will not
suffer from the race condition?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions