En la presentación de uso de semáforos, en la parte de lectores y escritores, variante II, se agrega la siguiente restricción: "Cuando hay lectores leyendo y llega un escritor, éste debe tener prioridad sobre los próximos lectores que lleguen".
Con la solución de abajo, si algún lector accede a try, el primer escritor que entre se va a quedar esperando en P(try) hasta que dicho lector haga V(try). El problema es que mientras el lector no libera el try, pueden llegar más lectores que se queden esperando en P(try) al mismo tiempo que el escritor. Cuando el lector libere try, podría seguir ejecutando tanto el escritor como cualquiera de los lectores que estaban esperando.
¿Hay algo de lo que no me esté dando cuenta?