diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-09-27 17:19:44 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-09-27 17:19:44 -0700 |
commit | 706d76a81618b522199f84d89101d0733c546786 (patch) | |
tree | e48fc3c291606896ddd04b07a6e6cbbacbabbb48 /syslog.h | |
parent | 73561e855842fe75450d789ef11c5fd883f221d0 (diff) | |
download | txr-706d76a81618b522199f84d89101d0733c546786.tar.gz txr-706d76a81618b522199f84d89101d0733c546786.tar.bz2 txr-706d76a81618b522199f84d89101d0733c546786.zip |
New :postfini feature in defstruct.
The :postfini clause registers a finalizer that runs in the
ordinary order: after previously registered ones. This has
the effect of allowing a derived structure to run clean-up
actions after those of inherited structures. Either order
can be useful because the dependencies between base and
derived can go in either direction. It's a huge mistake in
C++ that it supports only derived-first destructor invocation
order.
* stdlib/struct.tl (defstruct): Recognize and translate
:postfini clause. It's exactly like :fini but omits the
t parameter in the finalize call, registering in the
natural order.
* tests/012/fini.tl (derived): Add :postfini handler.
* tests/012/fini.expected: Updated to reflect the messages
coming from the postfini handler, which are happening
in the correct order.
* txr.1: Documented.
Diffstat (limited to 'syslog.h')
0 files changed, 0 insertions, 0 deletions