exit_thread(__attribute__((unused)) const struct mg_context *ctx,
	__attribute__((unused)) int thread_type, void *thread_pointer)
{
	if (thread_type == 1) {
		struct conn_wrkr_s *data = (struct conn_wrkr_s *) thread_pointer;
		if (data->propRemoteAddr) {
			prop.Destruct(&data->propRemoteAddr);
		}
		if (data->scratchBufSize) {
			free(data->pScratchBuf);
		}
		free(data->pReadBuf);
		free(data->pMsg);
		free(data);
	}
}
exit_thread(__attribute__((unused)) const struct mg_context *ctx,
	__attribute__((unused)) int thread_type, void *thread_pointer)
{
	if (thread_type == 1) {
		struct conn_wrkr_s *data = (struct conn_wrkr_s *) thread_pointer;
		if (data->propRemoteAddr) {
			prop.Destruct(&data->propRemoteAddr);
		}
		if (data->scratchBufSize) {
			free(data->pScratchBuf);
		}
		free(data->pReadBuf);
		free(data->pMsg);
		free(data);
	}
}