While 1) is probably a bug made by the user it shows that threading and sharing 
state is too hard in Nim currently. In a perfect world the user wouldn't be 
able to make bugs like that unless they tried really hard, and this is the case 
for the most part when doing single-threaded Nim. But as soon as you get over 
to the realm of multi-threading it seems like the Nim approach so far has been 
"you're on your own" by default. Don't get me wrong, I like that we're 
_[able](https://forum.nim-lang.org/postActivity.xml#able) to go low level in 
Nim, and for some things it is really necessary, but that it is the default 
when doing threading isn't great.

The situation is slowly improving, and ARC seems to be very nice for threading. 
But we really needs some better standard library modules that wraps the 
low-level concepts of threading in a nice user-friendly package.

Reply via email to