Odin Rqt-close May 2026

close_resource :: proc(resource: ^Raw_Resource) when ODIN_OS == "windows" sys.windows.CloseHandle(resource.handle) else when ODIN_OS == "linux" sys.linux.close(resource.fd) resource.valid = false

Example:

if my_handle != INVALID_HANDLE CloseHandle(my_handle) my_handle = INVALID_HANDLE odin rqt-close

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. or allocated system object

Close_Handle :: proc(h: windows.HANDLE) -> bool if h == windows.INVALID_HANDLE_VALUE do return true return windows.CloseHandle(h) odin rqt-close

If you have dependent resources (e.g., a file mapping before the file handle), close child resources first. 3. Defer is Your Friend Odin’s defer statement is perfect for pairing allocation with release: