On Fri, 2010-12-03 at 12:03 -0600, Michael Roth wrote: > +/* create new client job and then put it on the queue. this can be > + * called externally from virtagent. Since there can only be one virtagent > + * instance we access state via an object-scoped global rather than pass > + * it around. > + * > + * if this is successful virtagent will handle cleanup of req_xml after > + * making the appropriate callbacks, otherwise callee should handle it > + */
Explain please. Do you mean caller should handle it? Are you trying to say that this function, when successful, "steals" the reference to req_xml? > +int va_client_job_add(xmlrpc_mem_block *req_xml, VAClientCallback *cb, > + MonitorCompletion *mon_cb, void *mon_data) > +{ > + int ret; > + VAClientJob *client_job; > + TRACE("called"); > + > + client_job = va_client_job_new(req_xml, cb, mon_cb, mon_data); > + if (client_job == NULL) { > + return -EINVAL; > + } > + > + ret = va_push_client_job(client_job); > + if (ret != 0) { > + LOG("error adding client to queue: %s", strerror(ret)); > + qemu_free(client_job); > + return ret; > + } > + > + return 0; > +} -- Thanks, Adam