Rqt-close — Odin
rqt-close is not a magic keyword or a hidden runtime feature. It is a discipline . By writing an explicit close for every opened file, created handle, or allocated system object, you retain full control over your program’s interaction with the operating system.
package resource import "core:sys/windows" odin rqt-close
This does not replace manual closing but provides a fallback for global resources. Because rqt-close is not a standard library function, writing cross-platform code requires abstraction. Consider: rqt-close is not a magic keyword or a hidden runtime feature
In Odin, every open deserves a close, every create a destroy. Your future self (and your operating system) will thank you. Your future self (and your operating system) will thank you
| Platform | Resource Type | Close Function | |----------|---------------|----------------| | Windows | HANDLE | CloseHandle | | Linux / macOS | file descriptor | close (syscall or libc) | | WebAssembly (WASI) | fd | fd_close |
h := CreateFile("data.txt", ...) defer CloseHandle(h) // Guaranteed to run on scope exit // ... use h ...
Or for a cross-platform abstraction:
