tabla:
------------------------------
Id | CupoEsDisponible
------------------------------
1 | 1
2 | 1
3 | 1
4 | 1
5 | 1
------------------------------
El 1 en CupoEsDisponible indica que el cupo es disponible. el codigo:
Código
// por aqui llegan todos los usuarios/sesiones Begintransaction() aqui el usuario verifica si hay cupo disponible ( si "CupoEsDisponible" es igual a 1 sino retornaria FALSE ). aqui todas las demas sesiones se detienen a esperan que la primera termine. y el problema es ese, las demas sesiones quedan esperando ya que todas acceden a la misma fila con Id = 1 pudiendo recuperar la fila 2 o 3, 4, 5 que estan disponibles asi que como hago para prevenir que no esperen y que busquen por otra fila? if(Query("SELECT * FROM Tabla_cupos_para_usuarios WHERE CupoEsDisponible = 1 LOCK IN SHARE MODE") != FALSE) { el cupo es disponible asi que lo establecemos como no disponible ( igual a 0 ) execute("UPDATE Tabla_cupos_para_usuarios SET CupoEsDisponible = 0 WHERE Id = Id_que_obtuvimos_de_Query"); mas codigo... } Commit()