Summary of results of calls to Latch_Obtain
The following table summarizes the results of calls to the Latch_Obtain service:
Situation | Obtain Option | Access Option | Resulting Actions for Caller of Latch_Obtain | Outcome of Request to Obtain Latch |
---|---|---|---|---|
Latch is not owned | Any | Any | Return control to caller | Ownership granted immediately; if obtain option ISGLOBT_ASYNC_ECB (value of 2) is specified, ECB is not posted |
Only shared requestors own latch | Any | ISGLOBT_SHARED (value of 1) | Return control to caller | Ownership granted immediately; if obtain option ISGLOBT_ASYNC_ECB (value of 2) is specified, ECB is not posted |
Only shared requestors own latch | ISGLOBT_SYNC (value of 0) | ISGLOBT_EXCLUSIVE (value of 0) | Suspend caller | Request queued, ownership granted when latch available |
Only shared requestors own latch | ISGLOBT_COND (value of 1) | ISGLOBT_EXCLUSIVE (value of 0) | Return control to caller | Request not queued |
Only shared requestors own latch | ISGLOBT_ASYNC_ECB (value of 2) | ISGLOBT_EXCLUSIVE (value of 0) | Return control to caller | Request queued, ECB posted when ownership granted |
An exclusive requestor owns or is waiting for the latch | ISGLOBT_SYNC (value of 0) | Any | Suspend caller | Request queued, ownership granted when latch available |
An exclusive requestor owns or is waiting for the latch | ISGLOBT_COND (value of 1) | Any | Return control to caller | Request not queued |
An exclusive requestor owns or is waiting for the latch | ISGLOBT_ASYNC_ECB (value of 2) | Any | Return control to caller | Request queued, ECB posted when ownership granted |