code / tomo

Lines41.3K C23.7K Markdown9.7K YAML5.0K Tomo2.3K
7 others 763
Python231 Shell230 make212 INI47 Text21 SVG16 Lua6
(38 lines)
1 '\" t
2 .\" Copyright (c) 2026 Bruce Hill
3 .\" All rights reserved.
4 .\"
5 .TH at_cleanup 3 2026-03-08 "Tomo man-pages"
6 .SH NAME
7 at_cleanup \- register a cleanup function
8 .SH LIBRARY
9 Tomo Standard Library
10 .SH SYNOPSIS
11 .nf
12 .BI at_cleanup\ :\ func(fn:\ func()\ ->\ Void)
13 .fi
14 .SH DESCRIPTION
15 Register a function that runs at cleanup time for Tomo programs. Cleanup time happens when a program exits (see `atexit()` in C), or immediately before printing error messages in a call to `fail()`. This allows for terminal cleanup so error messages can be visible as the program shuts down.
18 .SH ARGUMENTS
20 .TS
21 allbox;
22 lb lb lbx
23 l l l.
24 Name Type Description
25 fn func() A function to run at cleanup time.
26 .TE
27 .SH RETURN
28 Nothing.
30 .SH NOTES
31 Use this API very carefully, because errors that occur during cleanup functions may make it extremely hard to figure out what's going on. Cleanup functions should be designed to not error under any circumstances.
33 .SH EXAMPLES
34 .EX
35 at_cleanup(func()
36 _ := (/tmp/file.txt).remove(ignore_missing=yes)
38 .EE