The eager-future Reference Manual

This is the eager-future Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:19:50 2024 GMT+0.

Table of Contents


1 Systems

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


1.1 eager-future

Dependency

bordeaux-threads (system).

Source

eager-future.asd.

Child Components

2 Files

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


2.1 Lisp


2.1.1 eager-future/eager-future.asd

Source

eager-future.asd.

Parent Component

eager-future (system).

ASDF Systems

eager-future.


2.1.2 eager-future/package.lisp

Source

eager-future.asd.

Parent Component

eager-future (system).

Packages

eager-future.


2.1.3 eager-future/future.lisp

Dependency

package.lisp (file).

Source

eager-future.asd.

Parent Component

eager-future (system).

Public Interface
Internals

2.1.4 eager-future/threads.lisp

Dependency

future.lisp (file).

Source

eager-future.asd.

Parent Component

eager-future (system).

Public Interface
Internals

2.1.5 eager-future/eager-future.lisp

Dependency

threads.lisp (file).

Source

eager-future.asd.

Parent Component

eager-future (system).

Public Interface

3 Packages

Packages are listed by definition order.


3.1 eager-future

Source

package.lisp.

Use List
  • bordeaux-threads.
  • common-lisp.
Public Interface
Internals

4 Definitions

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


4.1 Public Interface


4.1.1 Special variables

Special Variable: *thread-pool*
Package

eager-future.

Source

threads.lisp.


4.1.2 Macros

Macro: pexec (&body body)
Package

eager-future.

Source

eager-future.lisp.

Macro: plet ((&rest bindings) &body body)
Package

eager-future.

Source

eager-future.lisp.


4.1.3 Ordinary functions

Function: pcall (thunk)
Package

eager-future.

Source

eager-future.lisp.

Function: ready-to-yield? (future)
Package

eager-future.

Source

future.lisp.

Function: select (&rest futures)

Returns the first future that is ready to yield.

Package

eager-future.

Source

future.lisp.

Function: yield (future)

Block until future is ready to yield. If the future yielded an error, it is re-raised as an EXECUTION-ERROR, otherwise the values yielded by the future are returned.

Package

eager-future.

Source

future.lisp.


4.1.4 Generic functions

Generic Reader: execution-error (object)
Package

eager-future.

Methods
Reader Method: execution-error ((future future))

automatically generated reader method

Source

future.lisp.

Target Slot

execution-error.

Generic Reader: execution-error-cause (condition)
Package

eager-future.

Methods
Reader Method: execution-error-cause ((condition execution-error))
Source

future.lisp.

Target Slot

cause.

Generic Reader: thread-limit (object)
Package

eager-future.

Methods
Reader Method: thread-limit ((thread-pool thread-pool))

automatically generated reader method

Source

threads.lisp.

Target Slot

thread-limit.

Generic Writer: (setf thread-limit) (object)
Package

eager-future.

Methods
Writer Method: (setf thread-limit) ((thread-pool thread-pool))

automatically generated writer method

Source

threads.lisp.

Target Slot

thread-limit.


4.1.5 Standalone methods

Reader Method: lock ((thread-pool thread-pool))

automatically generated reader method

Package

bordeaux-threads.

Source

threads.lisp.

Target Slot

lock.

Reader Method: lock ((future future))

automatically generated reader method

Package

bordeaux-threads.

Source

future.lisp.

Target Slot

lock.

Method: print-object ((e execution-error) stream)
Source

future.lisp.


4.1.6 Conditions

Condition: execution-error
Package

eager-future.

Source

future.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: cause
Initargs

:cause

Readers

execution-error-cause.

Writers

This slot is read-only.


4.1.7 Classes

Class: fixed-fifo-thread-pool
Package

eager-future.

Source

threads.lisp.

Direct superclasses

thread-pool.

Direct methods

assign-task.

Class: future
Package

eager-future.

Source

future.lisp.

Direct methods
Direct slots
Slot: lock
Package

bordeaux-threads.

Initform

(bordeaux-threads:make-lock "future lock")

Readers

lock.

Writers

This slot is read-only.

Slot: done?
Readers

done?.

Writers

(setf done?).

Slot: execution-error
Readers

execution-error.

Writers

This slot is read-only.

Slot: values-yielded
Readers

values-yielded.

Writers

This slot is read-only.

Slot: wait-list
Readers

wait-list.

Writers

(setf wait-list).

Class: thread-pool
Package

eager-future.

Source

threads.lisp.

Direct subclasses

fixed-fifo-thread-pool.

Direct methods
Direct slots
Slot: threads
Readers

threads.

Writers

(setf threads).

Slot: free-thread-counter
Initform

0

Readers

free-thread-counter.

Writers

(setf free-thread-counter).

Slot: thread-limit
Readers

thread-limit.

Writers

(setf thread-limit).

Slot: lock
Package

bordeaux-threads.

Initform

(bordeaux-threads:make-lock "thread pool lock")

Readers

lock.

Writers

This slot is read-only.

Slot: leader-notifier
Initform

(bordeaux-threads:make-condition-variable)

Readers

leader-notifier.

Writers

This slot is read-only.

Slot: tasks
Readers

tasks.

Writers

(setf tasks).


4.2 Internals


4.2.1 Ordinary functions

Function: make-task (thunk future)
Package

eager-future.

Source

future.lisp.

Function: new-worker-thread (thread-pool task)
Package

eager-future.

Source

threads.lisp.


4.2.2 Generic functions

Generic Function: assign-task (task thread-pool)
Package

eager-future.

Methods
Method: assign-task (task (thread-pool fixed-fifo-thread-pool))
Source

threads.lisp.

Method: assign-task (task (thread-pool thread-pool))
Source

threads.lisp.

Method: assign-task :around (task (thread-pool thread-pool))
Source

threads.lisp.

Generic Reader: done? (object)
Package

eager-future.

Methods
Reader Method: done? ((future future))

automatically generated reader method

Source

future.lisp.

Target Slot

done?.

Generic Writer: (setf done?) (object)
Package

eager-future.

Methods
Writer Method: (setf done?) ((future future))

automatically generated writer method

Source

future.lisp.

Target Slot

done?.

Generic Reader: free-thread-counter (object)
Package

eager-future.

Methods
Reader Method: free-thread-counter ((thread-pool thread-pool))

automatically generated reader method

Source

threads.lisp.

Target Slot

free-thread-counter.

Generic Writer: (setf free-thread-counter) (object)
Package

eager-future.

Methods
Writer Method: (setf free-thread-counter) ((thread-pool thread-pool))

automatically generated writer method

Source

threads.lisp.

Target Slot

free-thread-counter.

Generic Reader: leader-notifier (object)
Package

eager-future.

Methods
Reader Method: leader-notifier ((thread-pool thread-pool))

automatically generated reader method

Source

threads.lisp.

Target Slot

leader-notifier.

Generic Reader: tasks (object)
Package

eager-future.

Methods
Reader Method: tasks ((thread-pool thread-pool))

automatically generated reader method

Source

threads.lisp.

Target Slot

tasks.

Generic Writer: (setf tasks) (object)
Package

eager-future.

Methods
Writer Method: (setf tasks) ((thread-pool thread-pool))

automatically generated writer method

Source

threads.lisp.

Target Slot

tasks.

Generic Reader: threads (object)
Package

eager-future.

Methods
Reader Method: threads ((thread-pool thread-pool))

automatically generated reader method

Source

threads.lisp.

Target Slot

threads.

Generic Writer: (setf threads) (object)
Package

eager-future.

Methods
Writer Method: (setf threads) ((thread-pool thread-pool))

automatically generated writer method

Source

threads.lisp.

Target Slot

threads.

Generic Reader: values-yielded (object)
Package

eager-future.

Methods
Reader Method: values-yielded ((future future))

automatically generated reader method

Source

future.lisp.

Target Slot

values-yielded.

Generic Reader: wait-list (object)
Package

eager-future.

Methods
Reader Method: wait-list ((future future))

automatically generated reader method

Source

future.lisp.

Target Slot

wait-list.

Generic Writer: (setf wait-list) (object)
Package

eager-future.

Methods
Writer Method: (setf wait-list) ((future future))

automatically generated writer method

Source

future.lisp.

Target Slot

wait-list.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   D   E   F   G   L   M   N   P   R   S   T   V   W   Y  
Index Entry  Section

(
(setf done?): Private generic functions
(setf done?): Private generic functions
(setf free-thread-counter): Private generic functions
(setf free-thread-counter): Private generic functions
(setf tasks): Private generic functions
(setf tasks): Private generic functions
(setf thread-limit): Public generic functions
(setf thread-limit): Public generic functions
(setf threads): Private generic functions
(setf threads): Private generic functions
(setf wait-list): Private generic functions
(setf wait-list): Private generic functions

A
assign-task: Private generic functions
assign-task: Private generic functions
assign-task: Private generic functions
assign-task: Private generic functions

D
done?: Private generic functions
done?: Private generic functions

E
execution-error: Public generic functions
execution-error: Public generic functions
execution-error-cause: Public generic functions
execution-error-cause: Public generic functions

F
free-thread-counter: Private generic functions
free-thread-counter: Private generic functions
Function, make-task: Private ordinary functions
Function, new-worker-thread: Private ordinary functions
Function, pcall: Public ordinary functions
Function, ready-to-yield?: Public ordinary functions
Function, select: Public ordinary functions
Function, yield: Public ordinary functions

G
Generic Function, (setf done?): Private generic functions
Generic Function, (setf free-thread-counter): Private generic functions
Generic Function, (setf tasks): Private generic functions
Generic Function, (setf thread-limit): Public generic functions
Generic Function, (setf threads): Private generic functions
Generic Function, (setf wait-list): Private generic functions
Generic Function, assign-task: Private generic functions
Generic Function, done?: Private generic functions
Generic Function, execution-error: Public generic functions
Generic Function, execution-error-cause: Public generic functions
Generic Function, free-thread-counter: Private generic functions
Generic Function, leader-notifier: Private generic functions
Generic Function, tasks: Private generic functions
Generic Function, thread-limit: Public generic functions
Generic Function, threads: Private generic functions
Generic Function, values-yielded: Private generic functions
Generic Function, wait-list: Private generic functions

L
leader-notifier: Private generic functions
leader-notifier: Private generic functions
lock: Public standalone methods
lock: Public standalone methods

M
Macro, pexec: Public macros
Macro, plet: Public macros
make-task: Private ordinary functions
Method, (setf done?): Private generic functions
Method, (setf free-thread-counter): Private generic functions
Method, (setf tasks): Private generic functions
Method, (setf thread-limit): Public generic functions
Method, (setf threads): Private generic functions
Method, (setf wait-list): Private generic functions
Method, assign-task: Private generic functions
Method, assign-task: Private generic functions
Method, assign-task: Private generic functions
Method, done?: Private generic functions
Method, execution-error: Public generic functions
Method, execution-error-cause: Public generic functions
Method, free-thread-counter: Private generic functions
Method, leader-notifier: Private generic functions
Method, lock: Public standalone methods
Method, lock: Public standalone methods
Method, print-object: Public standalone methods
Method, tasks: Private generic functions
Method, thread-limit: Public generic functions
Method, threads: Private generic functions
Method, values-yielded: Private generic functions
Method, wait-list: Private generic functions

N
new-worker-thread: Private ordinary functions

P
pcall: Public ordinary functions
pexec: Public macros
plet: Public macros
print-object: Public standalone methods

R
ready-to-yield?: Public ordinary functions

S
select: Public ordinary functions

T
tasks: Private generic functions
tasks: Private generic functions
thread-limit: Public generic functions
thread-limit: Public generic functions
threads: Private generic functions
threads: Private generic functions

V
values-yielded: Private generic functions
values-yielded: Private generic functions

W
wait-list: Private generic functions
wait-list: Private generic functions

Y
yield: Public ordinary functions