void gearman_free(gearman_st *gearman) { gearman_con_st *con; gearman_job_st *job; gearman_task_st *task; gearman_packet_st *packet; for (con= gearman->con_list; con != NULL; con= gearman->con_list) gearman_con_free(con); for (job= gearman->job_list; job != NULL; job= gearman->job_list) gearman_job_free(job); for (task= gearman->task_list; task != NULL; task= gearman->task_list) gearman_task_free(task); for (packet= gearman->packet_list; packet != NULL; packet= gearman->packet_list) { gearman_packet_free(packet); } if (gearman->pfds != NULL) free(gearman->pfds); if (gearman->options & GEARMAN_ALLOCATED) free(gearman); }
/* {{{ proto object GearmanJob::__destruct() cleans up GearmanJob object */ PHP_METHOD(GearmanJob, __destruct) { gearman_job_obj *intern = Z_GEARMAN_JOB_P(getThis()); if (!intern) { return; } if (intern->flags & GEARMAN_JOB_OBJ_CREATED) { gearman_job_free(intern->job); } zend_object_std_dtor(&intern->std); }