Main Content

acquire

Acquire advisory lock on persistence service mutex

Description

TF = acquire(lk,timeout) acquires an advisory lock and returns a logical 1 (true) if the lock was successful, and a logical 0 (false) otherwise. If the lock is unavailable, acquire will continue trying to acquire it for timeout seconds.

example

Examples

collapse all

First, create a persistence service controller object and use that object to start the persistence service.

ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519);
start(ctrl)

Use the connection name to create a persistence service mutex.

lk = mps.sync.mutex('myDbLock','Connection','myRedisConnection')

Try to acquire advisory lock. If lock is unavailable, retry acquiring for 20 seconds.

acquire(lk, 20);
TF =

  logical

   1

Input Arguments

collapse all

A persistence service specific mutex object. If you use Redis™ as your persistence provider, lk will be a mps.sync.TimedRedisMutex object. If you use a MATLAB® as your persistence provider, lk will be a mps.sync.TimedMATFileMutex object.

Duration after which to retry acquiring lock.

Example: 20

Output Arguments

collapse all

TF has a logical 1 (true) if acquiring the advisory lock was successful, and a logical 0 (false) otherwise.

Version History

Introduced in R2018b