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