Собственно такие ошибки сразу видно, нельзя мешать атомарный доступ с обычным. Но это так, придирки, гораздо интереснее вот что: зачем вообще нужно WRITE_PENDING? Почему нельзя так:
C++ (Qt)
...
m_data = tmp; //tmp is ready, assign m_data to it
...
А разве это присваивание атомарно?
(возможно и да, но это не обещается). А вообще конечно можно, но получается очень неудобно: текста в LoadPage довольно много и все время нужно помнить что mData надо держать = 0.