Turns out that tracking write locks by their lifetime is not precise enough, but for now, we don't have an alternative. Also, we need to force_allocate what we acquire or else the memory will not be in the right state.