Ejemplo n.º 1
0
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);

}
Ejemplo n.º 2
0
supla_client_locations::~supla_client_locations() {

	ids_clean();
	arr_clean();
	safe_array_free(arr);
	lck_free(this->lck);

}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
supla_client_channels::~supla_client_channels() {
	arr_clean();
	safe_array_free(arr);
}
Ejemplo n.º 5
0
void supla_channel_temphum::free(void *tarr) {

	safe_array_clean(tarr, supla_channel_tarr_clean);
	safe_array_free(tarr);
}
Ejemplo n.º 6
0
supla_device_channels::~supla_device_channels() {
	arr_clean();
	safe_array_free(arr);
}