Changes from V2: - take care to lock for data vs attr fork differently Changes from V1: - fixed the review feedback - includes Bens original patch for completeness