NOTE: As the name suggests, this function should be used with caution. It releases the read lockbeforeacquiring a new write lock. This is not an atomic operation and the caller should not treat it as such. E.g. Pointers read from protected data structures prior to this call may be invalid after the function is called.