lock-file <file path> id <lock id> [ status <status> ]Copied!
cat << 'EOF' > lock.rim %% /lock public // Get application home directory get-app directory to dir // Create lock file name set-string fname = dir + "/.lock" // Enter loop in which something is done, OR, program waits for others to complete their work before doing its own start-loop // Attempt to lock file lock-file fname id lockid status lockst // Check the status of locking if-true lockst equal RIM_OKAY // File successfully locked, simulate working for 20 seconds @WORKING pause-program 20000 @DONE // Once done, unlock file unlock-file id lockid break-loop else-if lockst equal RIM_ERR_FAILED // Another process holds the lock, wait, try again for 1 second pause-program 1000 @WAITING continue-loop else-if lockst equal RIM_ERR_OPEN or lockst equal RIM_ERR_INVALID // Errors @BAD LOCK exit-handler end-if end-loop %% EOFCopied!
rim -k lock-app -qCopied!
rim -r --req="/lock" --exec --app="/lock" --silent-headerCopied!
WORKING DONECopied!
WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WORKING DONECopied!