28 |
|
* in method {@link #unlockWrite} to release the lock. Untimed and |
29 |
|
* timed versions of {@code tryWriteLock} are also provided. When |
30 |
|
* the lock is held in write mode, no read locks may be obtained, |
31 |
< |
* and all optimistic read validations will fail. </li> |
31 |
> |
* and all optimistic read validations will fail. |
32 |
|
* |
33 |
|
* <li><b>Reading.</b> Method {@link #readLock} possibly blocks |
34 |
|
* waiting for non-exclusive access, returning a stamp that can be |
35 |
|
* used in method {@link #unlockRead} to release the lock. Untimed |
36 |
< |
* and timed versions of {@code tryReadLock} are also provided. </li> |
36 |
> |
* and timed versions of {@code tryReadLock} are also provided. |
37 |
|
* |
38 |
|
* <li><b>Optimistic Reading.</b> Method {@link #tryOptimisticRead} |
39 |
|
* returns a non-zero stamp only if the lock is not currently held |
51 |
|
* invoke method {@code validate()}. For example, such steps are |
52 |
|
* typically required when first reading an object or array |
53 |
|
* reference, and then accessing one of its fields, elements or |
54 |
< |
* methods. </li> |
54 |
> |
* methods. |
55 |
|
* |
56 |
|
* </ul> |
57 |
|
* |