Re:In-memory hash tree implementation
by astockwell on Sunday March 27, 2016 @01:17PM
(#11370643)
[Edited for clarity per downstream thread]
Both refer to native maps not being safe for concurrent use (e.g. Safe for use with Go's coroutines -- Goroutine-safe)[1]
If I understand correctly, you still need guarding locks for this if reading and writing at same time, or have multiple writers. Isn't this the same as for the native map?
Re:In-memory hash tree implementation
by astockwell on Sunday March 27, 2016 @01:32PM
(#11370700)
It's not clear from the code; the author probably should clarify what "Goroutine safety" means - for reads or for read/write? Your correct about the approach for native maps.
EDIT: The package description punctuation is hard to grasp, but upon a second read, "Goroutine Safety." might be intended as a headline for the next line, which starts with "No." Read that way, your understanding sounds correct.
Sorry but I have typo in the documentation, the " Goroutine Safety." is the headline of following paragraph.
HTree dose not guarantee the goroutine safety:
> "Lock granularity depends on the use case."
The docs page updated.
> Goroutine Safety.
Could somebody elaborate on these two points? Why is it a "safe container" and how is it more "goroutine safe" than a map?