The patron Reference Manual

This is the patron Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:31:43 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 patron

A compact thread pool implementation.

Author

Volkan YAZICI <>

License

BSD

Dependency

bordeaux-threads (system).

Source

patron.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 patron/src

Source

patron.asd.

Parent Component

patron (system).

Child Components

4 Files

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


4.1 Lisp


4.1.1 patron/patron.asd

Source

patron.asd.

Parent Component

patron (system).

ASDF Systems

patron.

Packages

patron-system.


4.1.2 patron/src/packages.lisp

Source

patron.asd.

Parent Component

src (module).

Packages

patron.


4.1.3 patron/src/specials.lisp

Dependency

packages.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.4 patron/src/utils.lisp

Dependency

specials.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Internals

4.1.5 patron/src/semaphore.lisp

Dependency

utils.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Internals

4.1.6 patron/src/thread.lisp

Dependency

semaphore.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Public Interface

4.1.7 patron/src/queue.lisp

Dependency

thread.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Public Interface

shared-initialize (method).

Internals

4.1.8 patron/src/timeout.lisp

Dependency

queue.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Internals

4.1.9 patron/src/job.lisp

Dependency

timeout.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Public Interface

submit-job (function).


4.1.10 patron/src/worker.lisp

Dependency

job.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.11 patron/src/keeper.lisp

Dependency

worker.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Internals

4.1.12 patron/src/patron.lisp

Dependency

keeper.lisp (file).

Source

patron.asd.

Parent Component

src (module).

Public Interface
Internals

rotate-patron-state (function).


5 Packages

Packages are listed by definition order.


5.1 patron

Source

packages.lisp.

Use List

common-lisp.

Public Interface
Internals

5.2 patron-system

Source

patron.asd.

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

6 Definitions

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


6.1 Public Interface


6.1.1 Macros

Macro: with-lock (lock &body body)
Package

patron.

Source

thread.lisp.

Macro: without-interrupts (&body body)
Package

patron.

Source

thread.lisp.


6.1.2 Ordinary functions

Function: current-thread ()
Package

patron.

Source

thread.lisp.

Function: default-error-report (condition)

Default function for reporting errors.

Package

patron.

Source

specials.lisp.

Function: make-lock ()
Package

patron.

Source

thread.lisp.

Function: start-patron (patron)

After switching ‘STATE’ to ‘:ACTIVE’, starts ‘WORKERS’s and ‘KEEPER’s in order.

Package

patron.

Source

patron.lisp.

Function: stop-patron (patron &key wait kill)

After switching ‘STATE’ to ‘:INACTIVE’, stops ‘KEEPER’s and ‘WORKER’s in order. For related effects of keyword arguments see documentation of ‘STOP-KEEPERS’ and ‘STOP-WORKERS’ functions.

Package

patron.

Source

patron.lisp.

Function: submit-job (patron job)

Submit given ‘JOB’ into the job queue of ‘PATRON’. Function works in a blocking manner and returns inserted ‘JOB’, or throws a ‘TIMEOUT-CONDITION’.

Package

patron.

Source

job.lisp.

Function: thread-alive-p (thread)
Package

patron.

Source

thread.lisp.

Function: thread-interrupt (thread function)
Package

patron.

Source

thread.lisp.

Function: thread-join (thread)
Package

patron.

Source

thread.lisp.

Function: thread-start (thread)
Package

patron.

Source

thread.lisp.

Function: worker-stats (patron)

Returns a property list of minimum, maximum, and average statistics of ‘N-FAILURES’, ‘FAIL-DURATION’, ‘BUSY-DURATION’, and ‘IDLE-DURATION’ slots among workers. Function blocks job queue while gathering statistics.

Package

patron.

Source

worker.lisp.


6.1.3 Generic functions

Generic Reader: condition-of (object)
Generic Writer: (setf condition-of) (object)
Package

patron.

Methods
Reader Method: condition-of ((keeper keeper))
Writer Method: (setf condition-of) ((keeper keeper))

Condition catched in case of a crash.

Source

specials.lisp.

Target Slot

condition.

Reader Method: condition-of ((job job))
Writer Method: (setf condition-of) ((job job))

Signaled condition in case of a failure.

Source

specials.lisp.

Target Slot

condition.

Generic Reader: duration-of (condition)
Package

patron.

Methods
Reader Method: duration-of ((condition timeout-condition))
Source

specials.lisp.

Target Slot

duration.

Generic Reader: error-report-function-of (object)
Package

patron.

Methods
Reader Method: error-report-function-of ((patron patron))

Will get called for management related errors – e.g when found a dead worker, keeper, etc.

Source

specials.lisp.

Target Slot

error-report-function.

Reader Method: error-report-function-of ((job job))

Function will be called to report an error.

Source

specials.lisp.

Target Slot

error-report-function.

Generic Reader: finish-time-of (object)
Generic Writer: (setf finish-time-of) (object)
Package

patron.

Methods
Reader Method: finish-time-of ((keeper keeper))
Writer Method: (setf finish-time-of) ((keeper keeper))

Exit/Crash date.

Source

specials.lisp.

Target Slot

finish-time.

Reader Method: finish-time-of ((job job))
Writer Method: (setf finish-time-of) ((job job))

Job execution finish time.

Source

specials.lisp.

Target Slot

finish-time.

Generic Reader: function-of (object)
Generic Writer: (setf function-of) (object)
Package

patron.

Methods
Reader Method: function-of ((thread thread))
Writer Method: (setf function-of) ((thread thread))

Function executed by current thread.

Source

specials.lisp.

Target Slot

function.

Reader Method: function-of ((job job))

Function will be called to start the execution.

Source

specials.lisp.

Target Slot

function.

Generic Reader: id-of (object)
Generic Writer: (setf id-of) (object)
Package

patron.

Methods
Reader Method: id-of ((thread thread))
Writer Method: (setf id-of) ((thread thread))

Implementation dependent thread identifier.

Source

specials.lisp.

Target Slot

id.

Generic Reader: job-capacity-of (object)
Package

patron.

Methods
Reader Method: job-capacity-of ((patron patron))

Upper limit on the job queue size.

Source

specials.lisp.

Target Slot

job-capacity.

Generic Reader: keeper-timeout-duration-of (object)
Package

patron.

Methods
Reader Method: keeper-timeout-duration-of ((patron patron))

Wait period for keepers.

Source

specials.lisp.

Target Slot

keeper-timeout-duration.

Generic Reader: result-of (object)
Generic Writer: (setf result-of) (object)
Package

patron.

Methods
Reader Method: result-of ((job job))
Writer Method: (setf result-of) ((job job))

Job result in case of no failure.

Source

specials.lisp.

Target Slot

result.

Generic Reader: result-report-function-of (object)
Package

patron.

Methods
Reader Method: result-report-function-of ((job job))

Function will be called to report the result.

Source

specials.lisp.

Target Slot

result-report-function.

Generic Reader: start-time-of (object)
Generic Writer: (setf start-time-of) (object)
Package

patron.

Methods
Reader Method: start-time-of ((keeper keeper))
Writer Method: (setf start-time-of) ((keeper keeper))

Birth date.

Source

specials.lisp.

Target Slot

start-time.

Reader Method: start-time-of ((job job))
Writer Method: (setf start-time-of) ((job job))

Job execution start time.

Source

specials.lisp.

Target Slot

start-time.

Generic Reader: submit-time-of (object)
Generic Writer: (setf submit-time-of) (object)
Package

patron.

Methods
Reader Method: submit-time-of ((job job))
Writer Method: (setf submit-time-of) ((job job))

Job queue entrance time.

Source

specials.lisp.

Target Slot

submit-time.

Generic Reader: time-of (condition)
Package

patron.

Methods
Reader Method: time-of ((condition error-condition))
Source

specials.lisp.

Target Slot

time.

Generic Reader: worker-capacity-of (object)
Package

patron.

Methods
Reader Method: worker-capacity-of ((patron patron))

Number of serving ‘WORKER’s.

Source

specials.lisp.

Target Slot

worker-capacity.

Generic Reader: worker-timeout-duration-of (object)
Package

patron.

Methods
Reader Method: worker-timeout-duration-of ((patron patron))

Time limit on the work processing duration.

Source

specials.lisp.

Target Slot

worker-timeout-duration.


6.1.4 Standalone methods

Method: print-object ((thread thread) stream)
Source

specials.lisp.

Method: print-object ((patron patron) stream)
Source

specials.lisp.

Method: print-object ((job job) stream)
Source

specials.lisp.

Method: print-object ((keeper keeper) stream)
Source

specials.lisp.

Method: print-object ((worker worker) stream)
Source

specials.lisp.

Method: print-object ((kill-condition kill-condition) stream)
Source

specials.lisp.

Method: print-object ((timeout-condition timeout-condition) stream)
Source

specials.lisp.

Method: print-object ((queue queue) stream)
Source

specials.lisp.

Method: shared-initialize :after ((worker worker) slot-names &rest initargs)
Source

worker.lisp.

Method: shared-initialize :after ((queue queue) slot-names &rest initargs)
Source

queue.lisp.


6.1.5 Classes

Class: job
Package

patron.

Source

specials.lisp.

Direct methods
Direct slots
Slot: function

Function will be called to start the execution.

Package

common-lisp.

Type

function

Initform

(error "missing `function'!")

Initargs

:function

Readers

function-of.

Writers

This slot is read-only.

Slot: result-report-function

Function will be called to report the result.

Type

function

Initargs

:result-report-function

Readers

result-report-function-of.

Writers

This slot is read-only.

Slot: error-report-function

Function will be called to report an error.

Type

function

Initform

(function patron:default-error-report)

Initargs

:error-report-function

Readers

error-report-function-of.

Writers

This slot is read-only.

Slot: submit-time

Job queue entrance time.

Readers

submit-time-of.

Writers

(setf submit-time-of).

Slot: start-time

Job execution start time.

Readers

start-time-of.

Writers

(setf start-time-of).

Slot: finish-time

Job execution finish time.

Readers

finish-time-of.

Writers

(setf finish-time-of).

Slot: condition

Signaled condition in case of a failure.

Package

common-lisp.

Readers

condition-of.

Writers

(setf condition-of).

Slot: result

Job result in case of no failure.

Readers

result-of.

Writers

(setf result-of).

Class: patron
Package

patron.

Source

specials.lisp.

Direct methods
Direct slots
Slot: state

State of the patron; either ‘ACTIVE’, or ‘INACTIVE’.

Type

keyword

Initform

:inactive

Readers

state-of.

Writers

(setf state-of).

Slot: state-lock

Synchronization primitive for ‘STATE’ slot.

Initform

(patron:make-lock)

Readers

state-lock-of.

Writers

This slot is read-only.

Slot: error-report-function

Will get called for management related errors – e.g when found a dead worker, keeper, etc.

Type

function

Initform

(function patron:default-error-report)

Initargs

:error-report-function

Readers

error-report-function-of.

Writers

This slot is read-only.

Slot: jobs

FIFO queue of ‘JOB’s waiting to be processed.

Type

patron::queue

Readers

jobs-of.

Writers

(setf jobs-of).

Slot: job-capacity

Upper limit on the job queue size.

Type

(integer 1 *)

Initform

(error "missing `job-capacity'!")

Initargs

:job-capacity

Readers

job-capacity-of.

Writers

This slot is read-only.

Slot: workers

Vector of serving ‘WORKER’s.

Type

(simple-array patron::worker (*))

Readers

workers-of.

Writers

(setf workers-of).

Slot: worker-capacity

Number of serving ‘WORKER’s.

Type

(integer 1 *)

Initform

(error "missing `worker-capacity'!")

Initargs

:worker-capacity

Readers

worker-capacity-of.

Writers

This slot is read-only.

Slot: worker-timeout-duration

Time limit on the work processing duration.

Type

(integer 1 *)

Initform

(error "missing `worker-timeout-duration'!")

Initargs

:worker-timeout-duration

Readers

worker-timeout-duration-of.

Writers

This slot is read-only.

Slot: keepers

‘KEEPER’ couple for ‘WORKER’s and each other.

Readers

keepers-of.

Writers

(setf keepers-of).

Slot: keeper-timeout-duration

Wait period for keepers.

Type

(integer 1 *)

Initform

5

Initargs

:keeper-timeout-duration

Readers

keeper-timeout-duration-of.

Writers

This slot is read-only.

Class: thread
Package

patron.

Source

specials.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: id

Implementation dependent thread identifier.

Readers

id-of.

Writers

(setf id-of).

Slot: function

Function executed by current thread.

Package

common-lisp.

Readers

function-of.

Writers

(setf function-of).


6.2 Internals


6.2.1 Special variables

Special Variable: *error-stream*

Generic stream used by default error reporting functions.

Package

patron.

Source

specials.lisp.


6.2.2 Macros

Macro: prog1-let ((var val) &body body)
Package

patron.

Source

utils.lisp.

Macro: when-let ((var val) &body body)
Package

patron.

Source

utils.lisp.

Macro: with-blocking-queue-operations (queue &body body)

Function blocks any physical push/pop operations on the ‘QUEUE’ while execution ‘BODY’.

Package

patron.

Source

queue.lisp.

Macro: with-timeout (duration &body body)

Execute ‘BODY’ for no more than specified ‘DURATION’. In case of timeout, function throws a ‘TIMEOUT-CONDITION’.

Package

patron.

Source

timeout.lisp.

Macro: with-unique-names ((&rest bindings) &body body)
Package

patron.

Source

utils.lisp.


6.2.3 Ordinary functions

Function: %queue-pop (queue &optional default)

Pops an item from the given ‘QUEUE’. Function returns ‘DEFAULT’ in case of no available elements found.

Package

patron.

Source

queue.lisp.

Function: %queue-push (queue item)

Pushes given ‘ITEM’ into the ‘QUEUE’. Function returns supplied ‘ITEM’.

Package

patron.

Source

queue.lisp.

Function: %with-timeout (duration body)
Package

patron.

Source

timeout.lisp.

Function: keeper (keeper patron)

Keeper function to ensure the existence of its parent ‘KEEPER’ and ‘WORKER’s.

In case of a dead ‘KEEPER’/‘WORKER’ instance is found, ‘N-KEEPER-FAILURES’/‘N-WORKER-FAILURES’ slot is incremented and ‘ERROR-REPORT-FUNCTION’ the ‘PATRON’ is called with the inactive instance as argument.

Function loops infinitely by checking if ‘STATE’ is still ‘:ACTIVE’ before every ‘KEEPER-TIMEOUT-DURATION’ interval. In case of an error, ‘CONDITION’ slot of the ‘KEEPER’ is filled appropriately.

Package

patron.

Source

keeper.lisp.

Function: kill-keeper (keeper)
Package

patron.

Source

keeper.lisp.

Function: kill-worker (worker)
Package

patron.

Source

worker.lisp.

Function: make-keeper (patron)

Make an appropriate ‘KEEPER’ instance with a specific wrapper function around ‘KEEPER’ function.

Package

patron.

Source

keeper.lisp.

Function: make-worker (patron)
Package

patron.

Source

worker.lisp.

Function: queue-pop (queue)

Pops an item from the given ‘QUEUE’. Function blocks if there isn’t any available item in the queue.

Package

patron.

Source

queue.lisp.

Function: queue-push (queue item)

Tries to push given ‘ITEM’ into the ‘QUEUE’. If queue size gets exceeded, function blocks until at least an item is consumed from the queue. Function returns supplied ‘ITEM’.

Package

patron.

Source

queue.lisp.

Function: queue-timed-pop (queue duration &optional timeout)

Works like ‘QUEUE-POP’, but function returns ‘TIMEOUT’ if no available elements found in given ‘DURATION’.

Package

patron.

Source

queue.lisp.

Function: queue-timed-push (queue item duration &optional timeout)

Works like ‘QUEUE-PUSH’, but function returns ‘TIMEOUT’ if no push occurs in given ‘DURATION’.

Package

patron.

Source

queue.lisp.

Function: rotate-patron-state (patron target-state)

Switches ‘STATE’ slot of ‘PATRON’ to specified ‘TARGET-STATE’.

Package

patron.

Source

patron.lisp.

Function: semaphore-make (&optional count)
Package

patron.

Source

semaphore.lisp.

Function: semaphore-signal (semaphore)
Package

patron.

Source

semaphore.lisp.

Function: semaphore-timed-wait (semaphore duration)
Package

patron.

Source

semaphore.lisp.

Function: semaphore-wait (semaphore)
Package

patron.

Source

semaphore.lisp.

Function: start-keepers (patron)

Starts ‘KEEPER’s and waits for them to wake up. Function returns given ‘PATRON’.

Package

patron.

Source

keeper.lisp.

Function: start-workers (patron)

Fills ‘WORKERS’ and ‘JOBS’ slots of the given ‘PATRON’ appropriately and spawns workers. Function returns supplied ‘PATRON’.

Package

patron.

Source

worker.lisp.

Function: stop-keepers (patron &key kill wait)

Function does nothing – assuming ‘STATE’ is switched to ‘:INACTIVE’, ‘KEEPER’ function will exit in the next loop round. Function returns given ‘PATRON’.

If ‘KILL’ is true, function will try to terminate every keeper via throwing a ‘KILL-CONDITION’. ‘CONDITION’ slot of related ‘KEEPER’s will get set to this condition appropriately.

If ‘WAIT’ is true, function will wait (at most ‘KEEPER-TIMEOUT-DURATION’) for ‘KEEPER’s to exit.

Package

patron.

Source

keeper.lisp.

Function: stop-workers (patron &key kill wait)

Stops workers by pushing ‘NIL’ jobs to the queue as much as total # of workers. Function blocks until there is enough space in the job queue to push dummy ‘NIL’s. Function finally returns supplied ‘PATRON’.

If ‘KILL’ is true, function will try to terminate every worker that is still alive and report jobs about the situation via ‘ERROR-SUBMIT-FUNCTION’. ‘CONDITION’ slot of the ‘JOB’ will set to ‘KILL-CONDITION’.

If ‘WAIT’ is true, function will wait (at most ‘WORKER-TIMEOUT-DURATION’) for ‘WORKER’s to exit.

Package

patron.

Source

worker.lisp.

Function: time->string (time)
Package

patron.

Source

specials.lisp.

Function: wait-keeper (keeper)

Wait for ‘KEEPER’ to exit.

Package

patron.

Source

keeper.lisp.

Function: wait-worker (worker)
Package

patron.

Source

worker.lisp.

Function: worker (worker patron)

Worker function to execute the next available job in the queue. Function infinitely tries to pop ‘JOB’ from the queue until it receives a ‘NIL’ job.

During every job processing iteration, function resets ‘LAST-START-TIME’, ‘LAST-FINISH-TIME’, ‘N-FAILURES’, ‘FAIL-DURATION’, ‘BUSY-DURATION’, and ‘IDLE-DURATION’ slots of the ‘WORKER’ accordingly.

‘START-TIME’ and ‘FINISH-TIME’ slots of the ‘JOB’ is assigned respectively before and after the execution of the ‘FUNCTION’ slot of the ‘JOB’. After execution, if there doesn’t occur any errors, ‘RESULT’ slot of the ‘JOB’ is set accordingly and ‘RESULT-REPORT-FUNCTION’ is called with ‘JOB’ as argument. In case of an error, ‘CONDITION’ slot is set and ‘ERROR-REPORT-FUNCTION’ is called.

Package

patron.

Source

worker.lisp.


6.2.4 Generic functions

Generic Reader: busy-duration-of (object)
Generic Writer: (setf busy-duration-of) (object)
Package

patron.

Methods
Reader Method: busy-duration-of ((worker worker))
Writer Method: (setf busy-duration-of) ((worker worker))

Total non-idle duration.

Source

specials.lisp.

Target Slot

busy-duration.

Generic Reader: fail-duration-of (object)
Generic Writer: (setf fail-duration-of) (object)
Package

patron.

Methods
Reader Method: fail-duration-of ((worker worker))
Writer Method: (setf fail-duration-of) ((worker worker))

Total duration spend on failed processings.

Source

specials.lisp.

Target Slot

fail-duration.

Generic Reader: head-of (object)
Package

patron.

Methods
Reader Method: head-of ((queue queue))

automatically generated reader method

Source

specials.lisp.

Target Slot

head.

Generic Writer: (setf head-of) (object)
Package

patron.

Methods
Writer Method: (setf head-of) ((queue queue))

automatically generated writer method

Source

specials.lisp.

Target Slot

head.

Generic Reader: idle-duration-of (object)
Generic Writer: (setf idle-duration-of) (object)
Package

patron.

Methods
Reader Method: idle-duration-of ((worker worker))
Writer Method: (setf idle-duration-of) ((worker worker))

Total duration worker stayed idle.

Source

specials.lisp.

Target Slot

idle-duration.

Generic Reader: jobs-of (object)
Generic Writer: (setf jobs-of) (object)
Package

patron.

Methods
Reader Method: jobs-of ((patron patron))
Writer Method: (setf jobs-of) ((patron patron))

FIFO queue of ‘JOB’s waiting to be processed.

Source

specials.lisp.

Target Slot

jobs.

Generic Reader: keepers-of (object)
Generic Writer: (setf keepers-of) (object)
Package

patron.

Methods
Reader Method: keepers-of ((patron patron))
Writer Method: (setf keepers-of) ((patron patron))

‘KEEPER’ couple for ‘WORKER’s and each other.

Source

specials.lisp.

Target Slot

keepers.

Generic Reader: last-finish-time-of (object)
Generic Writer: (setf last-finish-time-of) (object)
Package

patron.

Methods
Reader Method: last-finish-time-of ((worker worker))
Writer Method: (setf last-finish-time-of) ((worker worker))

Last time worker finished a job.

Source

specials.lisp.

Target Slot

last-finish-time.

Generic Reader: last-start-time-of (object)
Generic Writer: (setf last-start-time-of) (object)
Package

patron.

Methods
Reader Method: last-start-time-of ((worker worker))
Writer Method: (setf last-start-time-of) ((worker worker))

Last time worker started a job.

Source

specials.lisp.

Target Slot

last-start-time.

Generic Reader: n-failures-of (object)
Generic Writer: (setf n-failures-of) (object)
Package

patron.

Methods
Reader Method: n-failures-of ((worker worker))
Writer Method: (setf n-failures-of) ((worker worker))

# of failed processings.

Source

specials.lisp.

Target Slot

n-failures.

Generic Reader: n-keeper-failures-of (object)
Generic Writer: (setf n-keeper-failures-of) (object)
Package

patron.

Methods
Reader Method: n-keeper-failures-of ((keeper keeper))
Writer Method: (setf n-keeper-failures-of) ((keeper keeper))

# of ‘KEEPER’ failures found.

Source

specials.lisp.

Target Slot

n-keeper-failures.

Generic Reader: n-worker-failures-of (object)
Generic Writer: (setf n-worker-failures-of) (object)
Package

patron.

Methods
Reader Method: n-worker-failures-of ((keeper keeper))
Writer Method: (setf n-worker-failures-of) ((keeper keeper))

# of ‘WORKER’ failures found.

Source

specials.lisp.

Target Slot

n-worker-failures.

Generic Reader: pop-lock-of (object)
Generic Writer: (setf pop-lock-of) (object)
Package

patron.

Methods
Reader Method: pop-lock-of ((queue queue))
Writer Method: (setf pop-lock-of) ((queue queue))

Lock serializing pop operations.

Source

specials.lisp.

Target Slot

pop-lock.

Generic Reader: pop-semaphore-of (object)
Generic Writer: (setf pop-semaphore-of) (object)
Package

patron.

Methods
Reader Method: pop-semaphore-of ((queue queue))
Writer Method: (setf pop-semaphore-of) ((queue queue))

Semaphore blocking pop operations while queue is empty.

Source

specials.lisp.

Target Slot

pop-semaphore.

Generic Reader: push-lock-of (object)
Generic Writer: (setf push-lock-of) (object)
Package

patron.

Methods
Reader Method: push-lock-of ((queue queue))
Writer Method: (setf push-lock-of) ((queue queue))

Lock serializing push operations.

Source

specials.lisp.

Target Slot

push-lock.

Generic Reader: push-semaphore-of (object)
Generic Writer: (setf push-semaphore-of) (object)
Package

patron.

Methods
Reader Method: push-semaphore-of ((queue queue))
Writer Method: (setf push-semaphore-of) ((queue queue))

Semaphore blocking push operations while queue is full.

Source

specials.lisp.

Target Slot

push-semaphore.

Generic Reader: size-of (object)
Package

patron.

Methods
Reader Method: size-of ((queue queue))

Maximum # of items allowed in the queue.

Source

specials.lisp.

Target Slot

size.

Generic Reader: state-lock-of (object)
Package

patron.

Methods
Reader Method: state-lock-of ((patron patron))

Synchronization primitive for ‘STATE’ slot.

Source

specials.lisp.

Target Slot

state-lock.

Generic Reader: state-of (object)
Generic Writer: (setf state-of) (object)
Package

patron.

Methods
Reader Method: state-of ((patron patron))
Writer Method: (setf state-of) ((patron patron))

State of the patron; either ‘ACTIVE’, or ‘INACTIVE’.

Source

specials.lisp.

Target Slot

state.

Generic Reader: tail-of (object)
Package

patron.

Methods
Reader Method: tail-of ((queue queue))

automatically generated reader method

Source

specials.lisp.

Target Slot

tail.

Generic Writer: (setf tail-of) (object)
Package

patron.

Methods
Writer Method: (setf tail-of) ((queue queue))

automatically generated writer method

Source

specials.lisp.

Target Slot

tail.

Generic Reader: workers-of (object)
Generic Writer: (setf workers-of) (object)
Package

patron.

Methods
Reader Method: workers-of ((patron patron))
Writer Method: (setf workers-of) ((patron patron))

Vector of serving ‘WORKER’s.

Source

specials.lisp.

Target Slot

workers.


6.2.5 Conditions

Condition: error-condition

Generic wrapper condition for application specific conditions.

Package

patron.

Source

specials.lisp.

Direct superclasses

error.

Direct subclasses
Direct methods

time-of.

Direct slots
Slot: time

Time condition instance is created.

Package

common-lisp.

Initform

(quote (get-universal-time))

Readers

time-of.

Writers

This slot is read-only.

Condition: kill-condition

Condition passed to the ‘CONDITION’ slot of a ‘KEEPER’/‘JOB’ while killing a keeper/worker.

Package

patron.

Source

specials.lisp.

Direct superclasses

error-condition.

Direct methods

print-object.

Condition: timeout-condition

Condition thrown when the duration specified in the ‘WITH-TIMEOUT’ is exceeded.

Package

patron.

Source

specials.lisp.

Direct superclasses

error-condition.

Direct methods
Direct slots
Slot: duration

Elapsed duration before condition is raised.

Initargs

:duration

Readers

duration-of.

Writers

This slot is read-only.


6.2.6 Classes

Class: keeper
Package

patron.

Source

specials.lisp.

Direct superclasses

thread.

Direct methods
Direct slots
Slot: start-time

Birth date.

Initform

(get-universal-time)

Readers

start-time-of.

Writers

(setf start-time-of).

Slot: finish-time

Exit/Crash date.

Readers

finish-time-of.

Writers

(setf finish-time-of).

Slot: condition

Condition catched in case of a crash.

Package

common-lisp.

Readers

condition-of.

Writers

(setf condition-of).

Slot: n-keeper-failures

# of ‘KEEPER’ failures found.

Initform

0

Readers

n-keeper-failures-of.

Writers

(setf n-keeper-failures-of).

Slot: n-worker-failures

# of ‘WORKER’ failures found.

Initform

0

Readers

n-worker-failures-of.

Writers

(setf n-worker-failures-of).

Class: queue

Size bounded two-lock concurrent FIFO queue.

Package

patron.

Source

specials.lisp.

Direct methods
Direct slots
Slot: head
Type

list

Readers

head-of.

Writers

(setf head-of).

Slot: tail
Type

list

Readers

tail-of.

Writers

(setf tail-of).

Slot: size

Maximum # of items allowed in the queue.

Type

(integer 1 *)

Initargs

:size

Readers

size-of.

Writers

This slot is read-only.

Slot: pop-lock

Lock serializing pop operations.

Readers

pop-lock-of.

Writers

(setf pop-lock-of).

Slot: pop-semaphore

Semaphore blocking pop operations while queue is empty.

Readers

pop-semaphore-of.

Writers

(setf pop-semaphore-of).

Slot: push-lock

Lock serializing push operations.

Readers

push-lock-of.

Writers

(setf push-lock-of).

Slot: push-semaphore

Semaphore blocking push operations while queue is full.

Readers

push-semaphore-of.

Writers

(setf push-semaphore-of).

Class: worker
Package

patron.

Source

specials.lisp.

Direct superclasses

thread.

Direct methods
Direct slots
Slot: last-start-time

Last time worker started a job.

Readers

last-start-time-of.

Writers

(setf last-start-time-of).

Slot: last-finish-time

Last time worker finished a job.

Readers

last-finish-time-of.

Writers

(setf last-finish-time-of).

Slot: n-failures

# of failed processings.

Type

(integer 0 *)

Initform

0

Readers

n-failures-of.

Writers

(setf n-failures-of).

Slot: fail-duration

Total duration spend on failed processings.

Type

(integer 0 *)

Initform

0

Readers

fail-duration-of.

Writers

(setf fail-duration-of).

Slot: busy-duration

Total non-idle duration.

Type

(integer 0 *)

Initform

0

Readers

busy-duration-of.

Writers

(setf busy-duration-of).

Slot: idle-duration

Total duration worker stayed idle.

Type

(integer 0 *)

Initform

0

Readers

idle-duration-of.

Writers

(setf idle-duration-of).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
B   C   D   E   F   G   H   I   J   K   L   M   N   P   Q   R   S   T   W  
Index Entry  Section

%
%queue-pop: Private ordinary functions
%queue-push: Private ordinary functions
%with-timeout: Private ordinary functions

(
(setf busy-duration-of): Private generic functions
(setf busy-duration-of): Private generic functions
(setf condition-of): Public generic functions
(setf condition-of): Public generic functions
(setf condition-of): Public generic functions
(setf fail-duration-of): Private generic functions
(setf fail-duration-of): Private generic functions
(setf finish-time-of): Public generic functions
(setf finish-time-of): Public generic functions
(setf finish-time-of): Public generic functions
(setf function-of): Public generic functions
(setf function-of): Public generic functions
(setf head-of): Private generic functions
(setf head-of): Private generic functions
(setf id-of): Public generic functions
(setf id-of): Public generic functions
(setf idle-duration-of): Private generic functions
(setf idle-duration-of): Private generic functions
(setf jobs-of): Private generic functions
(setf jobs-of): Private generic functions
(setf keepers-of): Private generic functions
(setf keepers-of): Private generic functions
(setf last-finish-time-of): Private generic functions
(setf last-finish-time-of): Private generic functions
(setf last-start-time-of): Private generic functions
(setf last-start-time-of): Private generic functions
(setf n-failures-of): Private generic functions
(setf n-failures-of): Private generic functions
(setf n-keeper-failures-of): Private generic functions
(setf n-keeper-failures-of): Private generic functions
(setf n-worker-failures-of): Private generic functions
(setf n-worker-failures-of): Private generic functions
(setf pop-lock-of): Private generic functions
(setf pop-lock-of): Private generic functions
(setf pop-semaphore-of): Private generic functions
(setf pop-semaphore-of): Private generic functions
(setf push-lock-of): Private generic functions
(setf push-lock-of): Private generic functions
(setf push-semaphore-of): Private generic functions
(setf push-semaphore-of): Private generic functions
(setf result-of): Public generic functions
(setf result-of): Public generic functions
(setf start-time-of): Public generic functions
(setf start-time-of): Public generic functions
(setf start-time-of): Public generic functions
(setf state-of): Private generic functions
(setf state-of): Private generic functions
(setf submit-time-of): Public generic functions
(setf submit-time-of): Public generic functions
(setf tail-of): Private generic functions
(setf tail-of): Private generic functions
(setf workers-of): Private generic functions
(setf workers-of): Private generic functions

B
busy-duration-of: Private generic functions
busy-duration-of: Private generic functions

C
condition-of: Public generic functions
condition-of: Public generic functions
condition-of: Public generic functions
current-thread: Public ordinary functions

D
default-error-report: Public ordinary functions
duration-of: Public generic functions
duration-of: Public generic functions

E
error-report-function-of: Public generic functions
error-report-function-of: Public generic functions
error-report-function-of: Public generic functions

F
fail-duration-of: Private generic functions
fail-duration-of: Private generic functions
finish-time-of: Public generic functions
finish-time-of: Public generic functions
finish-time-of: Public generic functions
Function, %queue-pop: Private ordinary functions
Function, %queue-push: Private ordinary functions
Function, %with-timeout: Private ordinary functions
Function, current-thread: Public ordinary functions
Function, default-error-report: Public ordinary functions
Function, keeper: Private ordinary functions
Function, kill-keeper: Private ordinary functions
Function, kill-worker: Private ordinary functions
Function, make-keeper: Private ordinary functions
Function, make-lock: Public ordinary functions
Function, make-worker: Private ordinary functions
Function, queue-pop: Private ordinary functions
Function, queue-push: Private ordinary functions
Function, queue-timed-pop: Private ordinary functions
Function, queue-timed-push: Private ordinary functions
Function, rotate-patron-state: Private ordinary functions
Function, semaphore-make: Private ordinary functions
Function, semaphore-signal: Private ordinary functions
Function, semaphore-timed-wait: Private ordinary functions
Function, semaphore-wait: Private ordinary functions
Function, start-keepers: Private ordinary functions
Function, start-patron: Public ordinary functions
Function, start-workers: Private ordinary functions
Function, stop-keepers: Private ordinary functions
Function, stop-patron: Public ordinary functions
Function, stop-workers: Private ordinary functions
Function, submit-job: Public ordinary functions
Function, thread-alive-p: Public ordinary functions
Function, thread-interrupt: Public ordinary functions
Function, thread-join: Public ordinary functions
Function, thread-start: Public ordinary functions
Function, time->string: Private ordinary functions
Function, wait-keeper: Private ordinary functions
Function, wait-worker: Private ordinary functions
Function, worker: Private ordinary functions
Function, worker-stats: Public ordinary functions
function-of: Public generic functions
function-of: Public generic functions
function-of: Public generic functions

G
Generic Function, (setf busy-duration-of): Private generic functions
Generic Function, (setf condition-of): Public generic functions
Generic Function, (setf fail-duration-of): Private generic functions
Generic Function, (setf finish-time-of): Public generic functions
Generic Function, (setf function-of): Public generic functions
Generic Function, (setf head-of): Private generic functions
Generic Function, (setf id-of): Public generic functions
Generic Function, (setf idle-duration-of): Private generic functions
Generic Function, (setf jobs-of): Private generic functions
Generic Function, (setf keepers-of): Private generic functions
Generic Function, (setf last-finish-time-of): Private generic functions
Generic Function, (setf last-start-time-of): Private generic functions
Generic Function, (setf n-failures-of): Private generic functions
Generic Function, (setf n-keeper-failures-of): Private generic functions
Generic Function, (setf n-worker-failures-of): Private generic functions
Generic Function, (setf pop-lock-of): Private generic functions
Generic Function, (setf pop-semaphore-of): Private generic functions
Generic Function, (setf push-lock-of): Private generic functions
Generic Function, (setf push-semaphore-of): Private generic functions
Generic Function, (setf result-of): Public generic functions
Generic Function, (setf start-time-of): Public generic functions
Generic Function, (setf state-of): Private generic functions
Generic Function, (setf submit-time-of): Public generic functions
Generic Function, (setf tail-of): Private generic functions
Generic Function, (setf workers-of): Private generic functions
Generic Function, busy-duration-of: Private generic functions
Generic Function, condition-of: Public generic functions
Generic Function, duration-of: Public generic functions
Generic Function, error-report-function-of: Public generic functions
Generic Function, fail-duration-of: Private generic functions
Generic Function, finish-time-of: Public generic functions
Generic Function, function-of: Public generic functions
Generic Function, head-of: Private generic functions
Generic Function, id-of: Public generic functions
Generic Function, idle-duration-of: Private generic functions
Generic Function, job-capacity-of: Public generic functions
Generic Function, jobs-of: Private generic functions
Generic Function, keeper-timeout-duration-of: Public generic functions
Generic Function, keepers-of: Private generic functions
Generic Function, last-finish-time-of: Private generic functions
Generic Function, last-start-time-of: Private generic functions
Generic Function, n-failures-of: Private generic functions
Generic Function, n-keeper-failures-of: Private generic functions
Generic Function, n-worker-failures-of: Private generic functions
Generic Function, pop-lock-of: Private generic functions
Generic Function, pop-semaphore-of: Private generic functions
Generic Function, push-lock-of: Private generic functions
Generic Function, push-semaphore-of: Private generic functions
Generic Function, result-of: Public generic functions
Generic Function, result-report-function-of: Public generic functions
Generic Function, size-of: Private generic functions
Generic Function, start-time-of: Public generic functions
Generic Function, state-lock-of: Private generic functions
Generic Function, state-of: Private generic functions
Generic Function, submit-time-of: Public generic functions
Generic Function, tail-of: Private generic functions
Generic Function, time-of: Public generic functions
Generic Function, worker-capacity-of: Public generic functions
Generic Function, worker-timeout-duration-of: Public generic functions
Generic Function, workers-of: Private generic functions

H
head-of: Private generic functions
head-of: Private generic functions

I
id-of: Public generic functions
id-of: Public generic functions
idle-duration-of: Private generic functions
idle-duration-of: Private generic functions

J
job-capacity-of: Public generic functions
job-capacity-of: Public generic functions
jobs-of: Private generic functions
jobs-of: Private generic functions

K
keeper: Private ordinary functions
keeper-timeout-duration-of: Public generic functions
keeper-timeout-duration-of: Public generic functions
keepers-of: Private generic functions
keepers-of: Private generic functions
kill-keeper: Private ordinary functions
kill-worker: Private ordinary functions

L
last-finish-time-of: Private generic functions
last-finish-time-of: Private generic functions
last-start-time-of: Private generic functions
last-start-time-of: Private generic functions

M
Macro, prog1-let: Private macros
Macro, when-let: Private macros
Macro, with-blocking-queue-operations: Private macros
Macro, with-lock: Public macros
Macro, with-timeout: Private macros
Macro, with-unique-names: Private macros
Macro, without-interrupts: Public macros
make-keeper: Private ordinary functions
make-lock: Public ordinary functions
make-worker: Private ordinary functions
Method, (setf busy-duration-of): Private generic functions
Method, (setf condition-of): Public generic functions
Method, (setf condition-of): Public generic functions
Method, (setf fail-duration-of): Private generic functions
Method, (setf finish-time-of): Public generic functions
Method, (setf finish-time-of): Public generic functions
Method, (setf function-of): Public generic functions
Method, (setf head-of): Private generic functions
Method, (setf id-of): Public generic functions
Method, (setf idle-duration-of): Private generic functions
Method, (setf jobs-of): Private generic functions
Method, (setf keepers-of): Private generic functions
Method, (setf last-finish-time-of): Private generic functions
Method, (setf last-start-time-of): Private generic functions
Method, (setf n-failures-of): Private generic functions
Method, (setf n-keeper-failures-of): Private generic functions
Method, (setf n-worker-failures-of): Private generic functions
Method, (setf pop-lock-of): Private generic functions
Method, (setf pop-semaphore-of): Private generic functions
Method, (setf push-lock-of): Private generic functions
Method, (setf push-semaphore-of): Private generic functions
Method, (setf result-of): Public generic functions
Method, (setf start-time-of): Public generic functions
Method, (setf start-time-of): Public generic functions
Method, (setf state-of): Private generic functions
Method, (setf submit-time-of): Public generic functions
Method, (setf tail-of): Private generic functions
Method, (setf workers-of): Private generic functions
Method, busy-duration-of: Private generic functions
Method, condition-of: Public generic functions
Method, condition-of: Public generic functions
Method, duration-of: Public generic functions
Method, error-report-function-of: Public generic functions
Method, error-report-function-of: Public generic functions
Method, fail-duration-of: Private generic functions
Method, finish-time-of: Public generic functions
Method, finish-time-of: Public generic functions
Method, function-of: Public generic functions
Method, function-of: Public generic functions
Method, head-of: Private generic functions
Method, id-of: Public generic functions
Method, idle-duration-of: Private generic functions
Method, job-capacity-of: Public generic functions
Method, jobs-of: Private generic functions
Method, keeper-timeout-duration-of: Public generic functions
Method, keepers-of: Private generic functions
Method, last-finish-time-of: Private generic functions
Method, last-start-time-of: Private generic functions
Method, n-failures-of: Private generic functions
Method, n-keeper-failures-of: Private generic functions
Method, n-worker-failures-of: Private generic functions
Method, pop-lock-of: Private generic functions
Method, pop-semaphore-of: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, push-lock-of: Private generic functions
Method, push-semaphore-of: Private generic functions
Method, result-of: Public generic functions
Method, result-report-function-of: Public generic functions
Method, shared-initialize: Public standalone methods
Method, shared-initialize: Public standalone methods
Method, size-of: Private generic functions
Method, start-time-of: Public generic functions
Method, start-time-of: Public generic functions
Method, state-lock-of: Private generic functions
Method, state-of: Private generic functions
Method, submit-time-of: Public generic functions
Method, tail-of: Private generic functions
Method, time-of: Public generic functions
Method, worker-capacity-of: Public generic functions
Method, worker-timeout-duration-of: Public generic functions
Method, workers-of: Private generic functions

N
n-failures-of: Private generic functions
n-failures-of: Private generic functions
n-keeper-failures-of: Private generic functions
n-keeper-failures-of: Private generic functions
n-worker-failures-of: Private generic functions
n-worker-failures-of: Private generic functions

P
pop-lock-of: Private generic functions
pop-lock-of: Private generic functions
pop-semaphore-of: Private generic functions
pop-semaphore-of: Private generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
prog1-let: Private macros
push-lock-of: Private generic functions
push-lock-of: Private generic functions
push-semaphore-of: Private generic functions
push-semaphore-of: Private generic functions

Q
queue-pop: Private ordinary functions
queue-push: Private ordinary functions
queue-timed-pop: Private ordinary functions
queue-timed-push: Private ordinary functions

R
result-of: Public generic functions
result-of: Public generic functions
result-report-function-of: Public generic functions
result-report-function-of: Public generic functions
rotate-patron-state: Private ordinary functions

S
semaphore-make: Private ordinary functions
semaphore-signal: Private ordinary functions
semaphore-timed-wait: Private ordinary functions
semaphore-wait: Private ordinary functions
shared-initialize: Public standalone methods
shared-initialize: Public standalone methods
size-of: Private generic functions
size-of: Private generic functions
start-keepers: Private ordinary functions
start-patron: Public ordinary functions
start-time-of: Public generic functions
start-time-of: Public generic functions
start-time-of: Public generic functions
start-workers: Private ordinary functions
state-lock-of: Private generic functions
state-lock-of: Private generic functions
state-of: Private generic functions
state-of: Private generic functions
stop-keepers: Private ordinary functions
stop-patron: Public ordinary functions
stop-workers: Private ordinary functions
submit-job: Public ordinary functions
submit-time-of: Public generic functions
submit-time-of: Public generic functions

T
tail-of: Private generic functions
tail-of: Private generic functions
thread-alive-p: Public ordinary functions
thread-interrupt: Public ordinary functions
thread-join: Public ordinary functions
thread-start: Public ordinary functions
time->string: Private ordinary functions
time-of: Public generic functions
time-of: Public generic functions

W
wait-keeper: Private ordinary functions
wait-worker: Private ordinary functions
when-let: Private macros
with-blocking-queue-operations: Private macros
with-lock: Public macros
with-timeout: Private macros
with-unique-names: Private macros
without-interrupts: Public macros
worker: Private ordinary functions
worker-capacity-of: Public generic functions
worker-capacity-of: Public generic functions
worker-stats: Public ordinary functions
worker-timeout-duration-of: Public generic functions
worker-timeout-duration-of: Public generic functions
workers-of: Private generic functions
workers-of: Private generic functions


A.3 Variables

Jump to:   *  
B   C   D   E   F   H   I   J   K   L   N   P   R   S   T   W  
Index Entry  Section

*
*error-stream*: Private special variables

B
busy-duration: Private classes

C
condition: Public classes
condition: Private classes

D
duration: Private conditions

E
error-report-function: Public classes
error-report-function: Public classes

F
fail-duration: Private classes
finish-time: Public classes
finish-time: Private classes
function: Public classes
function: Public classes

H
head: Private classes

I
id: Public classes
idle-duration: Private classes

J
job-capacity: Public classes
jobs: Public classes

K
keeper-timeout-duration: Public classes
keepers: Public classes

L
last-finish-time: Private classes
last-start-time: Private classes

N
n-failures: Private classes
n-keeper-failures: Private classes
n-worker-failures: Private classes

P
pop-lock: Private classes
pop-semaphore: Private classes
push-lock: Private classes
push-semaphore: Private classes

R
result: Public classes
result-report-function: Public classes

S
size: Private classes
Slot, busy-duration: Private classes
Slot, condition: Public classes
Slot, condition: Private classes
Slot, duration: Private conditions
Slot, error-report-function: Public classes
Slot, error-report-function: Public classes
Slot, fail-duration: Private classes
Slot, finish-time: Public classes
Slot, finish-time: Private classes
Slot, function: Public classes
Slot, function: Public classes
Slot, head: Private classes
Slot, id: Public classes
Slot, idle-duration: Private classes
Slot, job-capacity: Public classes
Slot, jobs: Public classes
Slot, keeper-timeout-duration: Public classes
Slot, keepers: Public classes
Slot, last-finish-time: Private classes
Slot, last-start-time: Private classes
Slot, n-failures: Private classes
Slot, n-keeper-failures: Private classes
Slot, n-worker-failures: Private classes
Slot, pop-lock: Private classes
Slot, pop-semaphore: Private classes
Slot, push-lock: Private classes
Slot, push-semaphore: Private classes
Slot, result: Public classes
Slot, result-report-function: Public classes
Slot, size: Private classes
Slot, start-time: Public classes
Slot, start-time: Private classes
Slot, state: Public classes
Slot, state-lock: Public classes
Slot, submit-time: Public classes
Slot, tail: Private classes
Slot, time: Private conditions
Slot, worker-capacity: Public classes
Slot, worker-timeout-duration: Public classes
Slot, workers: Public classes
Special Variable, *error-stream*: Private special variables
start-time: Public classes
start-time: Private classes
state: Public classes
state-lock: Public classes
submit-time: Public classes

T
tail: Private classes
time: Private conditions

W
worker-capacity: Public classes
worker-timeout-duration: Public classes
workers: Public classes


A.4 Data types

Jump to:   C   E   F   J   K   M   P   Q   S   T   U   W  
Index Entry  Section

C
Class, job: Public classes
Class, keeper: Private classes
Class, patron: Public classes
Class, queue: Private classes
Class, thread: Public classes
Class, worker: Private classes
Condition, error-condition: Private conditions
Condition, kill-condition: Private conditions
Condition, timeout-condition: Private conditions

E
error-condition: Private conditions

F
File, job.lisp: The patron/src/job․lisp file
File, keeper.lisp: The patron/src/keeper․lisp file
File, packages.lisp: The patron/src/packages․lisp file
File, patron.asd: The patron/patron․asd file
File, patron.lisp: The patron/src/patron․lisp file
File, queue.lisp: The patron/src/queue․lisp file
File, semaphore.lisp: The patron/src/semaphore․lisp file
File, specials.lisp: The patron/src/specials․lisp file
File, thread.lisp: The patron/src/thread․lisp file
File, timeout.lisp: The patron/src/timeout․lisp file
File, utils.lisp: The patron/src/utils․lisp file
File, worker.lisp: The patron/src/worker․lisp file

J
job: Public classes
job.lisp: The patron/src/job․lisp file

K
keeper: Private classes
keeper.lisp: The patron/src/keeper․lisp file
kill-condition: Private conditions

M
Module, src: The patron/src module

P
Package, patron: The patron package
Package, patron-system: The patron-system package
packages.lisp: The patron/src/packages․lisp file
patron: The patron system
patron: The patron package
patron: Public classes
patron-system: The patron-system package
patron.asd: The patron/patron․asd file
patron.lisp: The patron/src/patron․lisp file

Q
queue: Private classes
queue.lisp: The patron/src/queue․lisp file

S
semaphore.lisp: The patron/src/semaphore․lisp file
specials.lisp: The patron/src/specials․lisp file
src: The patron/src module
System, patron: The patron system

T
thread: Public classes
thread.lisp: The patron/src/thread․lisp file
timeout-condition: Private conditions
timeout.lisp: The patron/src/timeout․lisp file

U
utils.lisp: The patron/src/utils․lisp file

W
worker: Private classes
worker.lisp: The patron/src/worker․lisp file