/* * call-seq: * conn.cancel() -> String * * Requests cancellation of the command currently being * processed. * * Returns +nil+ on success, or a string containing the * error message if a failure occurs. */ static VALUE pgconn_cancel(VALUE self) { char errbuf[256]; PGcancel *cancel; VALUE retval; int ret; cancel = PQgetCancel(get_pgconn(self)); if(cancel == NULL) rb_raise(rb_ePGError,"Invalid connection!"); ret = PQcancel(cancel, errbuf, 256); if(ret == 1) retval = Qnil; else retval = rb_str_new2(errbuf); PQfreeCancel(cancel); return retval; }