The cl-flow Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-flow Reference Manual

This is the cl-flow Reference Manual, version 1.0.0, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:05:24 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

CL-FLOW

Library for asynchonous non-blocking concurrency in Common Lisp.

Documentation

Documentation at borodust.org

Tests

(ql:quickload :cl-flow/tests)
(5am:run! :cl-flow-suite)

Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 cl-flow

Author

Pavel Korolev

Contact

dev@borodust.org

License

MIT

Description

Data-flow driven concurrency model for Common Lisp

Version

1.0.0

Dependencies
Source

cl-flow.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

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


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 cl-flow.asd

Location

cl-flow.asd

Systems

cl-flow (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 cl-flow/packages.lisp

Parent

cl-flow (system)

Location

packages.lisp

Packages

cl-flow


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 cl-flow/utils.lisp

Dependency

packages.lisp (file)

Parent

cl-flow (system)

Location

utils.lisp

Internal Definitions

+optimize-form+ (constant)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 cl-flow/atomic.lisp

Dependency

utils.lisp (file)

Parent

cl-flow (system)

Location

atomic.lisp

Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.5 cl-flow/flow.lisp

Dependency

atomic.lisp (file)

Parent

cl-flow (system)

Location

flow.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 cl-flow

Source

packages.lisp (file)

Nickname

flow

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: %> LAMBDA-LIST &body BODY

See flow:asynchronously

Package

cl-flow

Source

flow.lisp (file)

Macro: ->> LAMBDA-LIST &body BODY

See flow:dynamically

Package

cl-flow

Source

flow.lisp (file)

Macro: >> &rest FLOW

See flow:serially

Package

cl-flow

Source

flow.lisp (file)

Macro: asynchronously LAMBDA-LIST &body BODY

Splits current flow allowing manually managing its execution via #’continue-flow and #’interrupt-flow functions

Package

cl-flow

Source

flow.lisp (file)

Macro: atomically INVARIANT &body ARGS

Encloses atomic flow block of code that could be dispatched concurrently

Package

cl-flow

Source

flow.lisp (file)

Macro: concurrently &rest BODY

Executes child elements in parallel, returning a list of results for child blocks or flows in the same order they were specified

Package

cl-flow

Source

flow.lisp (file)

Macro: dynamically LAMBDA-LIST &body BODY

Generates new flow dynamically during parent flow execution. In other words, injects new dynamically created flow into a current one.

Package

cl-flow

Source

flow.lisp (file)

Macro: serially &rest FLOW

Executes child elements serially (but possibly in different threads) returning a value of the last atomic block or flow

Package

cl-flow

Source

flow.lisp (file)

Macro: ~> &rest BODY

See flow:concurrently

Package

cl-flow

Source

flow.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Functions

Function: continue-flow &optional VALUE

Invokes next flow block with provided value as an argument

Package

cl-flow

Source

flow.lisp (file)

Function: interrupt-flow CONDITION

Interrupts flow with provided condition

Package

cl-flow

Source

flow.lisp (file)

Function: run ()

Dispatcher must be a function with lambda-list congruent to (task invariant &key &allow-other-keys)

Package

cl-flow

Source

flow.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Constants

Constant: +optimize-form+
Package

cl-flow

Source

utils.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Macros

Macro: %atomic-decf PLACE

Atomically decrement the value of PLACE. For CCL, SBCL, and LW, it should be an accessor form for a struct slot holding an integer.

Package

cl-flow

Source

atomic.lisp (file)

Macro: flow-lambda (DISPATCHER RESULT-CALLBACK ARG) &body BODY
Package

cl-flow

Source

flow.lisp (file)

Macro: with-body-fu (FU-NAME LAMBDA-LIST FU-BODY) &body BODY
Package

cl-flow

Source

flow.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: %make-atomic-counter VALUE
Package

cl-flow

Source

atomic.lisp (file)

Function: atomic-counter-p OBJECT
Package

cl-flow

Source

atomic.lisp (file)

Function: atomic-counter-value INSTANCE
Function: (setf atomic-counter-value) VALUE INSTANCE
Package

cl-flow

Source

atomic.lisp (file)

Function: copy-atomic-counter INSTANCE
Package

cl-flow

Source

atomic.lisp (file)

Function: decrement-counter COUNTER

Returns previous value

Package

cl-flow

Source

atomic.lisp (file)

Function: dispatch-parallel-flow ()
Package

cl-flow

Source

flow.lisp (file)

Function: dispatch-serial-flow ()
Package

cl-flow

Source

flow.lisp (file)

Function: invoke-atomically ()
Package

cl-flow

Source

flow.lisp (file)

Function: invoke-dynamically ()
Package

cl-flow

Source

flow.lisp (file)

Function: invoke-with-restarts ()
Package

cl-flow

Source

flow.lisp (file)

Function: make-atomic-counter &optional VALUE
Package

cl-flow

Source

atomic.lisp (file)

Function: nop ()
Package

cl-flow

Source

flow.lisp (file)

Function: parse-atomic-block-args ARGS
Package

cl-flow

Source

flow.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Structures

Structure: atomic-counter ()
Package

cl-flow

Source

atomic.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: value
Type

(unsigned-byte 64)

Initform

0

Readers

atomic-counter-value (function)

Writers

(setf atomic-counter-value) (function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L  
Index Entry  Section

C
cl-flow.asd: The cl-flow<dot>asd file
cl-flow/atomic.lisp: The cl-flow/atomic<dot>lisp file
cl-flow/flow.lisp: The cl-flow/flow<dot>lisp file
cl-flow/packages.lisp: The cl-flow/packages<dot>lisp file
cl-flow/utils.lisp: The cl-flow/utils<dot>lisp file

F
File, Lisp, cl-flow.asd: The cl-flow<dot>asd file
File, Lisp, cl-flow/atomic.lisp: The cl-flow/atomic<dot>lisp file
File, Lisp, cl-flow/flow.lisp: The cl-flow/flow<dot>lisp file
File, Lisp, cl-flow/packages.lisp: The cl-flow/packages<dot>lisp file
File, Lisp, cl-flow/utils.lisp: The cl-flow/utils<dot>lisp file

L
Lisp File, cl-flow.asd: The cl-flow<dot>asd file
Lisp File, cl-flow/atomic.lisp: The cl-flow/atomic<dot>lisp file
Lisp File, cl-flow/flow.lisp: The cl-flow/flow<dot>lisp file
Lisp File, cl-flow/packages.lisp: The cl-flow/packages<dot>lisp file
Lisp File, cl-flow/utils.lisp: The cl-flow/utils<dot>lisp file

Jump to:   C   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (   -   >   ~  
A   C   D   F   I   M   N   P   R   S   W  
Index Entry  Section

%
%>: Exported macros
%atomic-decf: Internal macros
%make-atomic-counter: Internal functions

(
(setf atomic-counter-value): Internal functions

-
->>: Exported macros

>
>>: Exported macros

~
~>: Exported macros

A
asynchronously: Exported macros
atomic-counter-p: Internal functions
atomic-counter-value: Internal functions
atomically: Exported macros

C
concurrently: Exported macros
continue-flow: Exported functions
copy-atomic-counter: Internal functions

D
decrement-counter: Internal functions
dispatch-parallel-flow: Internal functions
dispatch-serial-flow: Internal functions
dynamically: Exported macros

F
flow-lambda: Internal macros
Function, %make-atomic-counter: Internal functions
Function, (setf atomic-counter-value): Internal functions
Function, atomic-counter-p: Internal functions
Function, atomic-counter-value: Internal functions
Function, continue-flow: Exported functions
Function, copy-atomic-counter: Internal functions
Function, decrement-counter: Internal functions
Function, dispatch-parallel-flow: Internal functions
Function, dispatch-serial-flow: Internal functions
Function, interrupt-flow: Exported functions
Function, invoke-atomically: Internal functions
Function, invoke-dynamically: Internal functions
Function, invoke-with-restarts: Internal functions
Function, make-atomic-counter: Internal functions
Function, nop: Internal functions
Function, parse-atomic-block-args: Internal functions
Function, run: Exported functions

I
interrupt-flow: Exported functions
invoke-atomically: Internal functions
invoke-dynamically: Internal functions
invoke-with-restarts: Internal functions

M
Macro, %>: Exported macros
Macro, %atomic-decf: Internal macros
Macro, ->>: Exported macros
Macro, >>: Exported macros
Macro, asynchronously: Exported macros
Macro, atomically: Exported macros
Macro, concurrently: Exported macros
Macro, dynamically: Exported macros
Macro, flow-lambda: Internal macros
Macro, serially: Exported macros
Macro, with-body-fu: Internal macros
Macro, ~>: Exported macros
make-atomic-counter: Internal functions

N
nop: Internal functions

P
parse-atomic-block-args: Internal functions

R
run: Exported functions

S
serially: Exported macros

W
with-body-fu: Internal macros

Jump to:   %   (   -   >   ~  
A   C   D   F   I   M   N   P   R   S   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   +  
C   S   V  
Index Entry  Section

+
+optimize-form+: Internal constants

C
Constant, +optimize-form+: Internal constants

S
Slot, value: Internal structures

V
value: Internal structures

Jump to:   +  
C   S   V  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   A   C   P   S  
Index Entry  Section

A
atomic-counter: Internal structures

C
cl-flow: The cl-flow system
cl-flow: The cl-flow package

P
Package, cl-flow: The cl-flow package

S
Structure, atomic-counter: Internal structures
System, cl-flow: The cl-flow system

Jump to:   A   C   P   S