Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:plans [2014/01/14 10:55] – [with-policy] winkler | doc:plans [2015/05/11 17:06] (current) – gkazhoya | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | //**Note:** this page is deprecated. Please use [[tutorials: | ||
+ | |||
====== Writing Plans ====== | ====== Writing Plans ====== | ||
Line 55: | Line 57: | ||
(with-failure-handling | (with-failure-handling | ||
((policy-check-condition-met (f) | ((policy-check-condition-met (f) | ||
- | | + | |
| | ||
- | | + | |
(with-named-policy ' | (with-named-policy ' | ||
(loop do (format t "Main loop cycle.~%" | (loop do (format t "Main loop cycle.~%" | ||
Line 66: | Line 68: | ||
When multiple policies are to be used (either a mix of different policies, or the same policy multiple times, each with different parameters), | When multiple policies are to be used (either a mix of different policies, or the same policy multiple times, each with different parameters), | ||
- | When policy instances by the names '' | + | When policy instances by the names '' |
<code lisp> | <code lisp> | ||
(with-policies | (with-policies | ||
Line 81: | Line 83: | ||
(body-code)))) | (body-code)))) | ||
</ | </ | ||
+ | |||
The same princple applies to '' | The same princple applies to '' | ||
<code lisp> | <code lisp> | ||
Line 89: | Line 92: | ||
(body-code)) | (body-code)) | ||
</ | </ | ||
- | This results in: | + | This results in the same behavior as: |
<code lisp> | <code lisp> | ||
(with-named-policy ' | (with-named-policy ' | ||
Line 96: | Line 99: | ||
(body-code)))) | (body-code)))) | ||
</ | </ | ||
+ | |||
+ | === Built-in Policies === | ||
+ | == timeout-policy == | ||
+ | When a piece of code only has a limited maximum amount of time for execution (and must be aborted after that duration), the '' | ||
+ | |||
+ | Use it like this: | ||
+ | <code lisp> | ||
+ | (with-policy cpl: | ||
+ | (body-code-goes-here)) | ||
+ | </ | ||
+ | And for catching the check condition when the timeout actually happens: | ||
+ | <code lisp> | ||
+ | (with-failure-handling | ||
+ | ((policy-check-condition-met (f) | ||
+ | (declare (ignore f)) | ||
+ | (handle-error-here-and-maybe-retry))) | ||
+ | (with-policy cpl: | ||
+ | (body-code-goes-here))) | ||
+ | </ | ||
+ | The '' |