buenas
hice una clase para encapsular las funciones POSIX provistas para tratar con el 
bloqueo por lectura/escritura (prefijo pthread_rwlock)
estaba probando como funciona y note algo interesante: cuando se hacen dos lock 
para escritura, el segundo lockeo no se bloquea, sino que sigue como si nada

codigo ejemplo:
cout << "primer lock de escritura:";
rwLock.wrlock();
cout <<  "OK"<< endl;
cout << "segundo lock de escritura:";
rwLock.wrlock();
cout <<  "OK"<< endl;

la salida es:
primer lock de escritura:OK
segundo lock de escritura:OK

lo comento porque pense que solo se podria escribir de a uno a la vez...
si dos hilos hacen un wrlock... quien sabe como va a terminar los datos que se 
quieren proteger
pense que el primero en hacer el wrlock tenia que hacer un unlock para que ceda 
al segundo que queria escribir

esto lo queria usar para implementar algo del tipo lector-escritor (varios 
pueden leer, uno solo puede escribir)
solo se puede leer cuando no esta en modo de escritura

por lo visto tendre que utilizar los mutex comunes y silvestres

otro tema que me parecio interesante es que hay un solo tipo de unlock... como 
sabe si el unlock es de tipo lectura/escritura?

bueno, los dejo con esa data

saludos
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a