The cl-actors Reference Manual

This is the cl-actors Reference Manual, version 1.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:06:02 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cl-actors

A simple common lisp actors library.

Author

Naveen Sundar G. <>

License

BSD

Version

1.1.0

Dependency

bordeaux-threads (system).

Source

cl-actors.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 cl-actors/cl-actors.asd

Source

cl-actors.asd.

Parent Component

cl-actors (system).

ASDF Systems

cl-actors.

Packages

cl-actors-asd.


3.1.2 cl-actors/package.lisp

Source

cl-actors.asd.

Parent Component

cl-actors (system).

Packages

cl-actors.


3.1.3 cl-actors/actors.lisp

Dependency

package.lisp (file).

Source

cl-actors.asd.

Parent Component

cl-actors (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 cl-actors-asd

Source

cl-actors.asd.

Use List
  • asdf/interface.
  • common-lisp.

4.2 cl-actors

Source

package.lisp.

Use List
  • bordeaux-threads.
  • 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: behav (state vars &body body)
Package

cl-actors.

Source

actors.lisp.

Macro: defactor (name state vars &body body)
Package

cl-actors.

Source

actors.lisp.


5.1.2 Ordinary functions

Function: printer (&key self)
Package

cl-actors.

Source

actors.lisp.


5.1.3 Generic functions

Generic Function: send (self &rest message)
Package

cl-actors.

Methods
Method: send ((self actor) &rest message)

Creates a message sending thread which
1. Holds lock to the message (queue)
2. Appends messages (queue) with incoming message 3. Releases lock
4. Notifies the waiting thread that there is a message

Source

actors.lisp.

Generic Function: stop-actor (self)
Package

cl-actors.

Methods
Method: stop-actor ((self actor))

Stops the actor thread

Source

actors.lisp.


5.1.4 Standalone methods

Method: initialize-instance :after ((self actor) &key)

Uses the main functiona name to create a thread

Source

actors.lisp.

Writer Method: (setf lock) ((actor actor))

The lock is used when adding a message to the message queue

Package

bordeaux-threads.

Source

actors.lisp.

Target Slot

lock.

Reader Method: lock ((actor actor))

The lock is used when adding a message to the message queue

Package

bordeaux-threads.

Source

actors.lisp.

Target Slot

lock.


5.2 Internals


5.2.1 Ordinary functions

Function: curry (f &rest args)
Package

cl-actors.

Source

actors.lisp.

Function: if-single (x)
Package

cl-actors.

Source

actors.lisp.

Function: make-actor (behav name)
Package

cl-actors.

Source

actors.lisp.

Function: pr (x)
Package

cl-actors.

Source

actors.lisp.

Function: sink (&rest args)
Package

cl-actors.

Source

actors.lisp.


5.2.2 Generic functions

Generic Reader: behavior (object)
Generic Writer: (setf behavior) (object)
Package

cl-actors.

Methods
Reader Method: behavior ((actor actor))
Writer Method: (setf behavior) ((actor actor))

Behavior

Source

actors.lisp.

Target Slot

behavior.

Generic Reader: cv (object)
Generic Writer: (setf cv) (object)
Package

cl-actors.

Methods
Reader Method: cv ((actor actor))
Writer Method: (setf cv) ((actor actor))

conditional variable used by the thread

Source

actors.lisp.

Target Slot

cv.

Generic Function: get-thread (self)
Package

cl-actors.

Methods
Method: get-thread ((self actor))

Returns the handle of a thread

Source

actors.lisp.

Generic Function: main (self)
Package

cl-actors.

Methods
Method: main ((self actor))
Source

actors.lisp.

Generic Reader: messages (object)
Generic Writer: (setf messages) (object)
Package

cl-actors.

Methods
Reader Method: messages ((actor actor))
Writer Method: (setf messages) ((actor actor))

Message stream sent to actor

Source

actors.lisp.

Target Slot

messages.

Generic Reader: name (object)
Generic Writer: (setf name) (object)
Package

cl-actors.

Methods
Reader Method: name ((actor actor))
Writer Method: (setf name) ((actor actor))

Hold the name of actor

Source

actors.lisp.

Target Slot

name.


5.2.3 Classes

Class: actor
Package

cl-actors.

Source

actors.lisp.

Direct methods
Direct slots
Slot: name

Hold the name of actor

Initform

(error ":name must be specified")

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: behavior

Behavior

Initform

(error ":behav must be specified")

Initargs

:behavior

Readers

behavior.

Writers

(setf behavior).

Slot: messages

Message stream sent to actor

Initform

(quote nil)

Readers

messages.

Writers

(setf messages).

Slot: lock

The lock is used when adding a message to the message queue

Package

bordeaux-threads.

Initform

(bordeaux-threads:make-lock)

Readers

lock.

Writers

(setf lock).

Slot: cv

conditional variable used by the thread

Initform

(bordeaux-threads:make-condition-variable)

Initargs

:cv

Readers

cv.

Writers

(setf cv).

Slot: thread
Package

bordeaux-threads.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
B   C   D   F   G   I   L   M   N   P   S  
Index Entry  Section

(
(setf behavior): Private generic functions
(setf behavior): Private generic functions
(setf cv): Private generic functions
(setf cv): Private generic functions
(setf lock): Public standalone methods
(setf messages): Private generic functions
(setf messages): Private generic functions
(setf name): Private generic functions
(setf name): Private generic functions

B
behav: Public macros
behavior: Private generic functions
behavior: Private generic functions

C
curry: Private ordinary functions
cv: Private generic functions
cv: Private generic functions

D
defactor: Public macros

F
Function, curry: Private ordinary functions
Function, if-single: Private ordinary functions
Function, make-actor: Private ordinary functions
Function, pr: Private ordinary functions
Function, printer: Public ordinary functions
Function, sink: Private ordinary functions

G
Generic Function, (setf behavior): Private generic functions
Generic Function, (setf cv): Private generic functions
Generic Function, (setf messages): Private generic functions
Generic Function, (setf name): Private generic functions
Generic Function, behavior: Private generic functions
Generic Function, cv: Private generic functions
Generic Function, get-thread: Private generic functions
Generic Function, main: Private generic functions
Generic Function, messages: Private generic functions
Generic Function, name: Private generic functions
Generic Function, send: Public generic functions
Generic Function, stop-actor: Public generic functions
get-thread: Private generic functions
get-thread: Private generic functions

I
if-single: Private ordinary functions
initialize-instance: Public standalone methods

L
lock: Public standalone methods

M
Macro, behav: Public macros
Macro, defactor: Public macros
main: Private generic functions
main: Private generic functions
make-actor: Private ordinary functions
messages: Private generic functions
messages: Private generic functions
Method, (setf behavior): Private generic functions
Method, (setf cv): Private generic functions
Method, (setf lock): Public standalone methods
Method, (setf messages): Private generic functions
Method, (setf name): Private generic functions
Method, behavior: Private generic functions
Method, cv: Private generic functions
Method, get-thread: Private generic functions
Method, initialize-instance: Public standalone methods
Method, lock: Public standalone methods
Method, main: Private generic functions
Method, messages: Private generic functions
Method, name: Private generic functions
Method, send: Public generic functions
Method, stop-actor: Public generic functions

N
name: Private generic functions
name: Private generic functions

P
pr: Private ordinary functions
printer: Public ordinary functions

S
send: Public generic functions
send: Public generic functions
sink: Private ordinary functions
stop-actor: Public generic functions
stop-actor: Public generic functions