All Manuals > Foreign Language Interface User Guide and Reference Manual > 7 Function, Macro and Variable Reference

with-foreign-block Macro

Summary

Allocates a foreign block, executes code and frees the block, in LispWorks for Macintosh.

Package

fli

Signature

with-foreign-block (foreign-block-var type function &rest extra-args) &body body => results

Arguments
foreign-block-var
A symbol.
type
A symbol naming a foreign block type defined using define-foreign-block-callable-type.
function
A Lisp function.
extra-args
Arguments for function.
body
Lisp forms.
Values
results
The results of body.
Description

The macro with-foreign-block allocates a foreign block using type, function and extra-args in the same way as allocate-foreign-block. It then binds foreign-block-var to the foreign block, execute the code of body and frees the foreign block using free-foreign-block, using unwind-protect.

with-foreign-block is a convenient way to ensure that you do not forget to free the foreign block.

Notes

If the foreign block is copied in the code of body, the copy may be invoked, and hence the function called, after exiting this macro. See the discussion in 5.7.3 Scope of invocation.

with-foreign-block returns the results of body.

with-foreign-block is implemented in LispWorks for Macintosh only.

See also

allocate-foreign-block
free-foreign-block
with-local-foreign-block
5.7 Block objects in C (foreign blocks)


Foreign Language Interface User Guide and Reference Manual - 01 Dec 2021 19:34:58