je crois que ton probléme sera résolu si tu déclare une variable booléenne qui sera à true si aucun utilisateur ne manipule la ressource et à false sinon, et aprés tu fais un test sur la variable dans chaque utilisateur avant d'effectuer la modification du genre:
bool etat=true;
while (!etat) ; // s'il ya qqun qui modifie la base alors on attend sans rien faire
ou bien "do while(!etat);"
et une fois la base est libérée l'utilisateur en attente peut y accéder en fesant:
etat=false;
//et puis tu fais ton accés à la base mysql
et aprés tu fais etat=true;
pour indiquer que l'utilisateur en cours a terminé son traitement