void ipc_accept_loop(void *ipc, void *ipc_al_sthread) { int client_sd; void *ipcctrl_thread_arr = safe_array_init(); while(sthread_isterminated(ipc_al_sthread) == 0) { safe_array_clean(ipcctrl_thread_arr, accept_loop_ipcctrl_thread_cnd); if ( -1 == (client_sd = ipcsocket_accept(ipc)) ) { break; } else { Tsthread_params stp; stp.execute = accept_loop_ipcctrl_execute; stp.finish = accept_loop_ipcctrl_finish; stp.user_data = new svr_ipcctrl(client_sd); stp.free_on_finish = 0; stp.initialize = NULL; safe_array_add(ipcctrl_thread_arr, sthread_run(&stp)); } } safe_array_clean(ipcctrl_thread_arr, accept_loop_ipcctrl_thread_twt); safe_array_free(ipcctrl_thread_arr); }
supla_client_locations::~supla_client_locations() { ids_clean(); arr_clean(); safe_array_free(arr); lck_free(this->lck); }
void accept_loop(void *ssd, void *al_sthread) { void *supla_socket = NULL; void *svrconn_thread_arr = safe_array_init(); while(sthread_isterminated(al_sthread) == 0) { safe_array_clean(svrconn_thread_arr, accept_loop_srvconn_thread_cnd); unsigned int ipv4; if ( ssocket_accept(ssd, &ipv4, &supla_socket) == 0 ) { break; } else { if ( supla_socket != NULL ) { Tsthread_params stp; stp.execute = accept_loop_srvconn_execute; stp.finish = accept_loop_srvconn_finish; stp.user_data = new serverconnection(ssd, supla_socket, ipv4); stp.free_on_finish = 0; stp.initialize = NULL; safe_array_add(svrconn_thread_arr, sthread_run(&stp)); } } } safe_array_clean(svrconn_thread_arr, accept_loop_srvconn_thread_twt); safe_array_free(svrconn_thread_arr); }
supla_client_channels::~supla_client_channels() { arr_clean(); safe_array_free(arr); }
void supla_channel_temphum::free(void *tarr) { safe_array_clean(tarr, supla_channel_tarr_clean); safe_array_free(tarr); }
supla_device_channels::~supla_device_channels() { arr_clean(); safe_array_free(arr); }