Custom locking mechanism

It is actually not that hard to implement a lock pattern in our code without using any external implementation. We only need a little help in the form of the TInterlocked class that I mentioned previously. The Lock (custom) button on the demonstration program activates two methods that use this approach.

The code uses an integer field called FCustomLock: integer as a lock. The logic is very simple; when this field contains a value of 0, access is granted. If the value is 1, access is locked.

The main program creates two threads, one executing CustomLockIncrementValue and another executing CustomLockDecrementingValue. The former is shown here:

procedure TfrmLock.CustomLockIncrementValue;var  i: integer;begin for i := ...

Get Hands-On Design Patterns with Delphi now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.