Common Lisp Package: LFARM-CLIENT.PROMISE

Promises and futures.

README:

FUNCTION

Public

PROMISE

Create a promise. A promise is a receptacle for a result which is unknown at the time it is created.

Undocumented

FORCE (PROMISE)

FULFILLEDP (PROMISE)

Private

MAKE-LOCK (&OPTIONAL NAME)

Creates a lock (a mutex) whose name is NAME. If the system does not support multiple threads this will still return some object, but it may not be used for very much.

Undocumented

%FULFILL (PROMISE FN)

CALL-WITH-UNFULFILLED (BODY-FN13 FUTURE)

FORCE-FUTURE (FUTURE)

FULFILL-FUTURE (FUTURE FN)

FULFILLED-FUTURE-P (FUTURE)

MAYBE-UPDATE-STATUS (FUTURE)

MACRO

Public

DELAY (&BODY BODY)

Create a delay. A delay is a promise which is fulfilled when `force' is called upon it.

Undocumented

FULFILL (PROMISE &BODY BODY)

FUTURE (&BODY BODY)

SPECULATE (&BODY BODY)

Private

WITH-LOCK-HELD ((PLACE) &BODY BODY)

Evaluates BODY with the lock named by PLACE, the value of which is a lock created by MAKE-LOCK. Before the forms in BODY are evaluated, the lock is acquired as if by using ACQUIRE-LOCK. After the forms in BODY have been evaluated, or if a non-local control transfer is caused (e.g. by THROW or SIGNAL), the lock is released as if by RELEASE-LOCK. Note that if the debugger is entered, it is unspecified whether the lock is released at debugger entry or at debugger exit when execution is restarted.

Undocumented

WITH-LOCK-PREDICATE/WAIT (LOCK PREDICATE &BODY BODY)

WITH-UNFULFILLED (&WHOLE WHOLE27 (FUTURE) &BODY BODY28)

CLASS

Public

Undocumented

FUTURE (&BODY BODY)

CONSTANT

Private

Undocumented

+NO-RESULT+