Click to See Complete Forum and Search --> : read write lock in C#


George2
April 16th, 2008, 09:50 AM
Hello everyone,


If I am using the ReaderWriterLock class, in the following 3 situations, except performance degrade, are there any functional issues? E.g. deadlock?

1. Acquire a specific write/read lock, and then acquire the write/read lock again, but release the write/read lock twice;

2. Acquire a specific read lock, and then acquire the write lock for the same object, and release in reverse order write lock, then read lock;

3. Acquire a specific write lock, and then acquire the read lock for the same object, and release in reverse order read lock, then write lock.


thanks in advance,
George

Mutant_Fruit
April 16th, 2008, 10:27 AM
Read the documentation page for ReaderWriterLock and it'll explain the possible errors and also tell you what is/isn't allowed.

George2
April 16th, 2008, 10:25 PM
Thanks Mutant_Fruit,


Read the documentation page for ReaderWriterLock and it'll explain the possible errors and also tell you what is/isn't allowed.

1.

I have read the document, the issue is, when a thread acquire a read lock, and then upgrade to write lock, the thread is not ensured to continue to hold the lock and proceed executuion, since it will be appended to the end of the write lock queue, and in this scenario a thread which waits for read lock will be awaked, and the awaked thread will hold read lock? Right?

2.

So, if I want a thread to proceed execution and hold lock all the time, I need to let it own write lock at first, other than upgrade?


regards,
George