| Held Lock | | Requested Lock | | Resulting Lock | | Description |
The held lock | IR | for the request of | IR | is replaced with | IR | This is correct. | The already held lock is requested again. |
The held lock | IR | for the request of | NR | is replaced with | NR | This is correct. | The resulting NR is stronger than the existing IR and requested NR.
|
The held lock | IR | for the request of | LR | is replaced with | LR | This is correct. | The resulting LR is stronger than the existing IR and requested LR.
|
The held lock | IR | for the request of | SR | is replaced with | SR | This is correct. | The resulting SR is stronger than the existing IR and requested SR.
|
The held lock | IR | for the request of | IX | is replaced with | IX | This is correct. | The resulting IX is stronger than the existing IR and requested IX.
|
The held lock | IR | for the request of | CX | is replaced with | CX | This is correct. | The resulting CX is stronger than the existing IR and requested CX.
|
The held lock | IR | for the request of | SU | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing IR and requested SU. The resulting lock SU can be graded down to SR (in case of a further SR request) but SR is still stronger than the existing IR. |
The held lock | IR | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing IR and requested SX.
|
The held lock | NR | for the request of | IR | is replaced with | NR | This is correct. | The resulting NR is stronger than the existing NR and requested IR.
|
The held lock | NR | for the request of | NR | is replaced with | NR | This is correct. | The already held lock is requested again. |
The held lock | NR | for the request of | LR | is replaced with | LR | This is correct. | The resulting LR is stronger than the existing NR and requested LR.
|
The held lock | NR | for the request of | SR | is replaced with | SR | This is correct. | The resulting SR is stronger than the existing NR and requested SR.
|
The held lock | NR | for the request of | IX | is replaced with | IX | This is correct. | The resulting IX is stronger than the existing NR and requested IX.
|
The held lock | NR | for the request of | CX | is replaced with | CX | This is correct. | The resulting CX is stronger than the existing NR and requested CX.
|
The held lock | NR | for the request of | SU | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing NR and requested SU. The resulting lock SU can be graded down to SR (in case of a further SR request) but SR is still stronger than the existing NR. |
The held lock | NR | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing NR and requested SX.
|
The held lock | LR | for the request of | IR | is replaced with | LR | This is correct. | The resulting LR is stronger than the existing LR and requested IR.
|
The held lock | LR | for the request of | NR | is replaced with | LR | This is correct. | The resulting LR is stronger than the existing LR and requested NR.
|
The held lock | LR | for the request of | LR | is replaced with | LR | This is correct. | The already held lock is requested again. |
The held lock | LR | for the request of | SR | is replaced with | SR | This is correct. | The resulting SR is stronger than the existing LR and requested SR.
|
The held lock | LR | for the request of | IX | is replaced with | IXNR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | - | + | - | Requested lock before conversion: IX on CO, no lock on CH | + | + | + | - | + | + | - | - | Locks after conversion: IX on CO, NR on CH | +
Ok | +
Ok | +
Ok | -
Ok | +
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH unblocked CX on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH unblocked CX on CH unblocked
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | + | + | - CX on CO for SX on CH incomp. to LR on CO | Requested lock before conversion: IX on CO, no lock on CH | + | + | + | + | + | + | + | + | Locks after conversion: IX on CO, NR on CH | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | - SX on CH incomp. to NR on CH
Ok |
|
The held lock | LR | for the request of | CX | is replaced with | CXNR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | - | + | - | Requested lock before conversion: CX on CO, no lock on CH | + | + | - | - | + | + | - | - | Locks after conversion: CX on CO, NR on CH | +
Ok | +
Ok | -
Ok | -
Ok | +
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH unblocked CX on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH unblocked CX on CH unblocked
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | + | + | - CX on CO for SX on CH incomp. to LR on CO | Requested lock before conversion: CX on CO, no lock on CH | + | + | + | + | + | + | + | + | Locks after conversion: CX on CO, NR on CH | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | - SX on CH incomp. to NR on CH
Ok |
|
The held lock | LR | for the request of | SU | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing LR and requested SU. The resulting lock SU can be graded down to SR (in case of a further SR request) but SR is still stronger than the existing LR. |
The held lock | LR | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing LR and requested SX.
|
The held lock | SR | for the request of | IR | is replaced with | SR | This is correct. | The resulting SR is stronger than the existing SR and requested IR.
|
The held lock | SR | for the request of | NR | is replaced with | SR | This is correct. | The resulting SR is stronger than the existing SR and requested NR.
|
The held lock | SR | for the request of | LR | is replaced with | SR | This is correct. | The resulting SR is stronger than the existing SR and requested LR.
|
The held lock | SR | for the request of | SR | is replaced with | SR | This is correct. | The already held lock is requested again. |
The held lock | SR | for the request of | IX | is replaced with | IXSR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: SR on CO, no lock on CH | + | + | + | + | - | - | + | - | Requested lock before conversion: IX on CO, no lock on CH | + | + | + | - | + | + | - | - | Locks after conversion: IX on CO, SR on CH | +
Ok | +
Ok | +
Ok | -
Ok | +
Acceptable ? IX results from conversion: IR and IX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | NR and IX: | NR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | LR and IX: | LR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | SR and IX: | SR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | IX and IR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | IX and NR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | IX and LR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | IX and SR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | IX and IX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: SR on CO, no lock on CH | + | + | + | + | - IX on CO for IX on CH incomp. to SR on CO | - IX on CO for CX on CH incomp. to SR on CO | + | - CX on CO for SX on CH incomp. to SR on CO | Requested lock before conversion: IX on CO, no lock on CH | + | + | + | + | + | + | + | + | Locks after conversion: IX on CO, SR on CH | +
Ok | +
Ok | +
Ok | +
Ok | - IX on CH incomp. to SR on CH
Ok | - CX on CH incomp. to SR on CH
Ok | +
Ok | - SX on CH incomp. to SR on CH
Ok |
|
The held lock | SR | for the request of | CX | is replaced with | CXSR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: SR on CO, no lock on CH | + | + | + | + | - | - | + | - | Requested lock before conversion: CX on CO, no lock on CH | + | + | - | - | + | + | - | - | Locks after conversion: CX on CO, SR on CH | +
Ok | +
Ok | -
Ok | -
Ok | +
Acceptable ? IX results from conversion: IR and IX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | NR and IX: | NR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | LR and IX: | LR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | SR and IX: | SR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | IX and IR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | IX and NR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | IX and LR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | IX and SR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | IX and IX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: SR on CO, no lock on CH | + | + | + | + | - IX on CO for IX on CH incomp. to SR on CO | - IX on CO for CX on CH incomp. to SR on CO | + | - CX on CO for SX on CH incomp. to SR on CO | Requested lock before conversion: CX on CO, no lock on CH | + | + | + | + | + | + | + | + | Locks after conversion: CX on CO, SR on CH | +
Ok | +
Ok | +
Ok | +
Ok | - IX on CH incomp. to SR on CH
Ok | - CX on CH incomp. to SR on CH
Ok | +
Ok | - SX on CH incomp. to SR on CH
Ok |
|
The held lock | SR | for the request of | SU | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing SR and requested SU. The resulting lock SU can be graded down to SR (in case of a further SR request) but SR is still stronger than the existing SR. |
The held lock | SR | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SR and requested SX.
|
The held lock | IX | for the request of | IR | is replaced with | IX | This is correct. | The resulting IX is stronger than the existing IX and requested IR.
|
The held lock | IX | for the request of | NR | is replaced with | IX | This is correct. | The resulting IX is stronger than the existing IX and requested NR.
|
The held lock | IX | for the request of | LR | is replaced with | IXNR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: IX on CO, no lock on CH | + | + | + | - | + | + | - | - | Requested lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | - | + | - | Locks after conversion: IX on CO, NR on CH | +
Ok | +
Ok | +
Ok | -
Ok | +
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH unblocked CX on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH unblocked CX on CH unblocked
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: IX on CO, no lock on CH | + | + | + | + | + | + | + | + | Requested lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | + | + | - CX on CO for SX on CH incomp. to LR on CO | Locks after conversion: IX on CO, NR on CH | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | - SX on CH incomp. to NR on CH
Ok |
|
The held lock | IX | for the request of | SR | is replaced with | IXSR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: IX on CO, no lock on CH | + | + | + | - | + | + | - | - | Requested lock before conversion: SR on CO, no lock on CH | + | + | + | + | - | - | + | - | Locks after conversion: IX on CO, SR on CH | +
Ok | +
Ok | +
Ok | -
Ok | +
Acceptable ? IX results from conversion: IR and IX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | NR and IX: | NR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | LR and IX: | LR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | SR and IX: | SR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | IX and IR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | IX and NR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | IX and LR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | IX and SR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | IX and IX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: IX on CO, no lock on CH | + | + | + | + | + | + | + | + | Requested lock before conversion: SR on CO, no lock on CH | + | + | + | + | - IX on CO for IX on CH incomp. to SR on CO | - IX on CO for CX on CH incomp. to SR on CO | + | - CX on CO for SX on CH incomp. to SR on CO | Locks after conversion: IX on CO, SR on CH | +
Ok | +
Ok | +
Ok | +
Ok | - IX on CH incomp. to SR on CH
Ok | - CX on CH incomp. to SR on CH
Ok | +
Ok | - SX on CH incomp. to SR on CH
Ok |
|
The held lock | IX | for the request of | IX | is replaced with | IX | This is correct. | The already held lock is requested again. |
The held lock | IX | for the request of | CX | is replaced with | CX | This is correct. | The resulting CX is stronger than the existing IX and requested CX.
|
The held lock | IX | for the request of | SU | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing IX and requested SU.
|
The held lock | IX | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing IX and requested SX.
|
The held lock | CX | for the request of | IR | is replaced with | CX | This is correct. | The resulting CX is stronger than the existing CX and requested IR.
|
The held lock | CX | for the request of | NR | is replaced with | CX | This is correct. | The resulting CX is stronger than the existing CX and requested NR.
|
The held lock | CX | for the request of | LR | is replaced with | CXNR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: CX on CO, no lock on CH | + | + | - | - | + | + | - | - | Requested lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | - | + | - | Locks after conversion: CX on CO, NR on CH | +
Ok | +
Ok | -
Ok | -
Ok | +
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH unblocked CX on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH unblocked CX on CH unblocked
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: CX on CO, no lock on CH | + | + | + | + | + | + | + | + | Requested lock before conversion: LR on CO, no lock on CH | + | + | + | + | + | + | + | - CX on CO for SX on CH incomp. to LR on CO | Locks after conversion: CX on CO, NR on CH | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | +
Ok | - SX on CH incomp. to NR on CH
Ok |
|
The held lock | CX | for the request of | SR | is replaced with | CXSR | This is correct. | Lock request on CO | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: CX on CO, no lock on CH | + | + | - | - | + | + | - | - | Requested lock before conversion: SR on CO, no lock on CH | + | + | + | + | - | - | + | - | Locks after conversion: CX on CO, SR on CH | +
Ok | +
Ok | -
Ok | -
Ok | +
Acceptable ? IX results from conversion: IR and IX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | NR and IX: | NR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | LR and IX: | LR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | SR and IX: | SR on CO requested from
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | IX and IR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | IX and NR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | IX and LR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | IX and SR: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | IX and IX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | +
Acceptable ? CX results from conversion: IR and CX: | IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | NR and CX: | NR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | LR and CX: | LR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | SR and CX: | SR on CO requested from
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | IX and CX: | IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. | CX and IR: | CX on CO requested from SX on CH blocked
All blocked.
| IR on CO requested from IR on CH unblocked NR on CH unblocked LR on CH unblocked SR on CH unblocked SU on CH unblocked
| | At least one completely blocked. | CX and NR: | CX on CO requested from SX on CH blocked
All blocked.
| NR on CO requested from
All blocked.
| | At least one completely blocked. | CX and LR: | CX on CO requested from SX on CH blocked
All blocked.
| LR on CO requested from
All blocked.
| | At least one completely blocked. | CX and SR: | CX on CO requested from SX on CH blocked
All blocked.
| SR on CO requested from
All blocked.
| | At least one completely blocked. | CX and IX: | CX on CO requested from SX on CH blocked
All blocked.
| IX on CO requested from IX on CH blocked CX on CH blocked
All blocked.
| | At least one completely blocked. | CX and CX: | CX on CO requested from SX on CH blocked
All blocked.
| CX on CO requested from SX on CH blocked
All blocked.
| | At least one completely blocked. |
Ok | -
Ok | -
Ok |
Lock request on CH | IR | NR | LR | SR | IX | CX | SU | SX | Held lock before conversion: CX on CO, no lock on CH | + | + | + | + | + | + | + | + | Requested lock before conversion: SR on CO, no lock on CH | + | + | + | + | - IX on CO for IX on CH incomp. to SR on CO | - IX on CO for CX on CH incomp. to SR on CO | + | - CX on CO for SX on CH incomp. to SR on CO | Locks after conversion: CX on CO, SR on CH | +
Ok | +
Ok | +
Ok | +
Ok | - IX on CH incomp. to SR on CH
Ok | - CX on CH incomp. to SR on CH
Ok | +
Ok | - SX on CH incomp. to SR on CH
Ok |
|
The held lock | CX | for the request of | IX | is replaced with | CX | This is correct. | The resulting CX is stronger than the existing CX and requested IX.
|
The held lock | CX | for the request of | CX | is replaced with | CX | This is correct. | The already held lock is requested again. |
The held lock | CX | for the request of | SU | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing CX and requested SU.
|
The held lock | CX | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing CX and requested SX.
|
The held lock | SU | for the request of | IR | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing SU and requested IR. The resulting lock SU can be graded down to SR (in case of a further SR request), SR is not stronger than the existing SU but this is an intended downgrade. |
The held lock | SU | for the request of | NR | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing SU and requested NR. The resulting lock SU can be graded down to SR (in case of a further SR request), SR is not stronger than the existing SU but this is an intended downgrade. |
The held lock | SU | for the request of | LR | is replaced with | SU | This is correct. | The resulting SU is stronger than the existing SU and requested LR. The resulting lock SU can be graded down to SR (in case of a further SR request), SR is not stronger than the existing SU but this is an intended downgrade. |
The held lock | SU | for the request of | SR | is replaced with | SR | This is correct. | Although the resulting lock SR is not stronger than the held lock SU, this lock conversion is correct because this situation is a intended downgrade from SU to SR. |
The held lock | SU | for the request of | IX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SU and requested IX.
|
The held lock | SU | for the request of | CX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SU and requested CX.
|
The held lock | SU | for the request of | SU | is replaced with | SU | This is correct. | The already held lock is requested again. |
The held lock | SU | for the request of | SX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SU and requested SX.
|
The held lock | SX | for the request of | IR | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested IR.
|
The held lock | SX | for the request of | NR | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested NR.
|
The held lock | SX | for the request of | LR | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested LR.
|
The held lock | SX | for the request of | SR | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested SR.
|
The held lock | SX | for the request of | IX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested IX.
|
The held lock | SX | for the request of | CX | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested CX.
|
The held lock | SX | for the request of | SU | is replaced with | SX | This is correct. | The resulting SX is stronger than the existing SX and requested SU.
|
The held lock | SX | for the request of | SX | is replaced with | SX | This is correct. | The already held lock is requested again. |