Skip to content

Commit

Permalink
For Allegro CL >= 8.1, the heap will be released during foreign funct…
Browse files Browse the repository at this point in the history
…ion calls
  • Loading branch information
Felix Filozov authored and luismbo committed Aug 12, 2013
1 parent f347a4e commit 53af387
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/cffi-allegro.lisp
Expand Up @@ -294,7 +294,8 @@ WITH-POINTER-TO-VECTOR-DATA."
`(system::ff-funcall
(load-time-value (excl::determine-foreign-address
'(,name :language :c)
ff::ep-flag-never-release
#-(version>= 8 1) ff::ep-flag-never-release
#+(version>= 8 1) ff::ep-flag-always-release
nil ; method-index
))
;; arg types {'(:c-type lisp-type) argN}*
Expand All @@ -316,7 +317,9 @@ WITH-POINTER-TO-VECTOR-DATA."
;; Don't use call-direct when there are no arguments.
,@(unless (null args) '(:call-direct t))
:arg-checking nil
:strings-convert nil)
:strings-convert nil
#+(version>= 8 1) ,@'(:release-heap :always)
#+smp ,@'(:release-heap-implies-allow-gc t))
`(,ff-name ,@args))))

;;; See doc/allegro-internals.txt for a clue about entry-vec.
Expand Down

0 comments on commit 53af387

Please sign in to comment.