Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Lock

変数名で論理ロックを取得します。

Synopsis

Lock(varname[,timeout])

引数

varname ロックする変数の名前。
timeout オプション — ロックを取得するのに待機する秒数を示す数値式。

概要

ロックが取得された場合は True を、それ以外の場合は False を返します。

varname でロックが取得されるたびに、この varname に対するロック・カウントはインクリメントされます。Unlock は、このカウントをデクリメントします。ロック・カウントが 0 になったときだけ、論理ロックは解除されます。このため、Lock への呼び出しは対応する Unlock への呼び出しと調整しなければなりません。

timeout が指定されていない場合、Lock はロックが取得されるまで無制限に待機します。timeout を指定すると、ロックを取得するために、timeout で指定された秒数だけ待機します。

以下の例では、Lock 関数を使用して、varname の論理ロックが取得されます。タイムアウトは 10 秒に設定されています。

If Lock(^PatientData(PatientID), 10) = True Then
  Println "Got the Lock"
  Unlock(^PatientData(PatientID))
Else
  Println "Couldn't get the lock"
End If

関連項目

FeedbackOpens in a new tab