close method

void close()

Gracefully closes the session and releases native resources.

Safe to call multiple times -- subsequent calls are no-ops.

Implementation

void close() {
  if (_closed) return;
  _closed = true;
  // ⛔ SHIM-OWNED BLOCK: zd_open_session_async malloc'd it, so the shim frees
  // it, inside zd_session_close_drop. A calloc.free here would be a
  // cross-allocator free -- the exact defect the allocator-side-frees rule
  // exists to prevent.
  bindings.zd_session_close_drop(_ptr.cast());
}