/* this causes a segfault, since ruby attempts to close the connection * when it goes out of scope. We'll let ruby take care of it. :) */ static VALUE fam_conn_close(VALUE self) { FAMConnection *conn; int err; Data_Get_Struct(self, FAMConnection, conn); err = FAMClose(conn); DATA_PTR(self) = NULL; if (err == -1) { rb_raise(eError, "Couldn't close FAM connection: %s", fam_error()); } return self; }