INMEMO uses a semaphore system (independent of LOKSER, XFLOCK, XLOCK, etc.) to control multi-user access to memo files. The system allows multiple user simultaneous editing within a given memo file; it only grabs exclusive use during the actual updating of the memo which occurs on exit from an editing session. (It is assumed that the primary data record to which the memo pads are linked will be locked to prevent multiple users from editing the same memo at the same time.)
As a second safety check, INMEMO keeps track of the first record of each memo currently being edited, and prevents multiple users from gaining simultaneous edit-level access to the same memo. Consequently, even if your primary record locking scheme has loopholes in it, INMEMO will protect itself (and your files) from conflicting updates. If an attempt is made to edit a memo currently being edited, INMEMO will display an appropriate message and allow the user the option of waiting or aborting the INMEMO request.
Although the single semaphore module in INMEMO.SYS will work for any number of memo files on the system, it will only allow file updates to a single file at one time. If you have a lot of users and multiple memo files, you can set up a semaphore module for each memo file to reduce the chance of an update bottleneck when many users exit from memos at the same time.
Before attempting to perform a memo file update, INMEMO will first look for a module in system memory with the same name as the memo file and an MLK extension. If that is not found, it will look for either INMEMO.SYS or INMEMO.MLK.