thx king protty
We generally get away with atomic primitives, however a lock is required around the refresh function since it traverses the Node graph, and we need to be sure no references to Nodes remain after end() is called.
If this errdefer did get run it would constitute a race condition. So I deleted the dead code for clarity.