return status;
}
+switch_status_t conference_close_open_files(conference_obj_t *conference)
+{
+ int x = 0;
+
+ switch_mutex_lock(conference->mutex);
+ /* Close Unused Handles */
+ if (conference->fnode) {
+ conference_file_node_t *fnode, *cur;
+ switch_memory_pool_t *pool;
+
+ fnode = conference->fnode;
+ while (fnode) {
+ cur = fnode;
+ fnode = fnode->next;
+
+ if (cur->type != NODE_TYPE_SPEECH) {
+ conference_file_close(conference, cur);
+ }
+
+ pool = cur->pool;
+ switch_core_destroy_memory_pool(&pool);
+ x++;
+ }
+ conference->fnode = NULL;
+ }
+
+ if (conference->async_fnode) {
+ switch_memory_pool_t *pool;
+ conference_file_close(conference, conference->async_fnode);
+ pool = conference->async_fnode->pool;
+ conference->async_fnode = NULL;
+ switch_core_destroy_memory_pool(&pool);
+ x++;
+ }
+ switch_mutex_unlock(conference->mutex);
+
+ return x ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_FALSE;
+}
+
/* For Emacs:
* Local Variables:
* mode:c
void conference_send_notify(conference_obj_t *conference, const char *status, const char *call_id, switch_bool_t final);
switch_status_t conference_file_close(conference_obj_t *conference, conference_file_node_t *node);
void *SWITCH_THREAD_FUNC conference_record_thread_run(switch_thread_t *thread, void *obj);
-
+switch_status_t conference_close_open_files(conference_obj_t *conference);
void conference_al_gen_arc(conference_obj_t *conference, switch_stream_handle_t *stream);
void conference_al_process(al_handle_t *al, void *data, switch_size_t datalen, int rate);