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: