The trivial-object-lock Reference Manual

This is the trivial-object-lock Reference Manual, version 0.3.4, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed May 15 07:11:14 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 trivial-object-lock

A simple method to lock object (and slot) access.

Author

Eric Diethelm <>

License

MIT

Long Description
Version

0.3.4

Dependencies
  • trivial-utilities (system).
  • log4cl (system).
  • bordeaux-threads (system).
  • iterate (system).
Source

trivial-object-lock.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 trivial-object-lock/trivial-object-lock.asd

Source

trivial-object-lock.asd.

Parent Component

trivial-object-lock (system).

ASDF Systems

trivial-object-lock.


3.1.2 trivial-object-lock/package.lisp

Source

trivial-object-lock.asd.

Parent Component

trivial-object-lock (system).

Packages

trivial-object-lock.


3.1.3 trivial-object-lock/trivial-object-lock.lisp

Source

trivial-object-lock.asd.

Parent Component

trivial-object-lock (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 trivial-object-lock

trivial-object-lock provides a simple and probably naïve way to lock objects. Only real USP is its ability to lock object slots independently.

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: with-object-lock-held ((object &key test property timeout) &body body)

Supporting macro to simplify usage of *ACQUIRE-LOCK* and *RELEASE-LOCK*.

Package

trivial-object-lock.

Source

trivial-object-lock.lisp.


5.1.2 Ordinary functions

Function: acquire-lock (object property &key blocking timeout test)

Acquire a lock on the given *OBJECT*. When not *NIL*, *PROPERTY* will be used to create a *PARTIAL-LOCK* on *OBJECT*; otherwise a *FULL-LOCK* is created.

Returns *NIL* if the lock was acquired; otherwise it returns a conditional variable to wait on.

Package

trivial-object-lock.

Source

trivial-object-lock.lisp.

Function: release-lock (object property &key test)

Releases the lock held by the current thread on *OBJECT* and *PROPERTY*.

Relates to *ACQUIRE-LOCK*

Package

trivial-object-lock.

Source

trivial-object-lock.lisp.


5.1.3 Conditions

Condition: interrupt-execution
Package

trivial-object-lock.

Source

trivial-object-lock.lisp.

Direct superclasses

condition.

Condition: lock-timeout
Package

trivial-object-lock.

Source

trivial-object-lock.lisp.

Direct superclasses

condition.


5.2 Internals


5.2.1 Special variables

Special Variable: *function-lock*
Package

trivial-object-lock.

Source

trivial-object-lock.lisp.

Special Variable: *lock-queue-counter*
Package

trivial-object-lock.

Source

trivial-object-lock.lisp.

Special Variable: *locks-held*
Package

trivial-object-lock.

Source

trivial-object-lock.lisp.


5.2.2 Ordinary functions

Function: find-next-waiting-lock (object)
Package

trivial-object-lock.

Source

trivial-object-lock.lisp.


Appendix A Indexes


A.1 Concepts