emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: using finalizers


From: Stefan Monnier
Subject: Re: using finalizers
Date: Thu, 30 Dec 2021 22:36:23 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

>> (macroexpand '(letrec ((more (make-finalizer close))
>>                        (close (lambda ()
>>                                 (setq bar t))))
>>                 (lambda ()
>>                   (when more
>>                     (pop x)))))
[...]
> Indeed, the code needs to swap `more` and `close`.

Actually, simpler:

    (letrec ((more (make-finalizer
                    (lambda ()
                      (print "close-resource")
                      (setq more nil)))))
      (lambda ()
        (when more
          (pop x)))))


-- Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]