sem_wait(&sem_warm_up);
void *warm_up_cache(void *fd){	struct table_range *range;	int rc, i, j, k;	struct odbc_context_t odbcc;	union odbc_data_t odbc_data;	range = (struct table_range *)(fd);	srand(time(NULL) + pthread_self());	rc = odbc_connect(&odbcc);	if (rc == W_ERROR)	{		LOG_ERROR_MESSAGE("odbc_connect error\n");		kill(0, SIGUSR1);		pthread_exit(NULL);	}	/* do search_by_author*/	odbc_data.search_results_odbc_data.eb.search_type=SEARCH_AUTHOR;	for (i=range->author_start; i<=range->author_end;i++)	{		digsyl2(odbc_data.search_results_odbc_data.eb.search_string, (long long)i+1, (long long)7);		rc = execute_search_results(&odbcc, &odbc_data);		if (rc == W_ERROR)		{			LOG_ERROR_MESSAGE("execute_search_results returned error");			kill(0, SIGUSR2);			pthread_exit(NULL);		}		/* copy the results out */		author_results_table[i].record_number=odbc_data.search_results_odbc_data.eb.items;		for (j=0; j<odbc_data.search_results_odbc_data.eb.items; j++)		{			author_results_table[i].search_results[j].i_id=odbc_data.search_results_odbc_data.eb.results_data[j].i_id;			strcpy(author_results_table[i].search_results[j].i_title, odbc_data.search_results_odbc_data.eb.results_data[j].i_title);			strcpy(author_results_table[i].search_results[j].a_fname, odbc_data.search_results_odbc_data.eb.results_data[j].a_fname);			strcpy(author_results_table[i].search_results[j].a_lname, odbc_data.search_results_odbc_data.eb.results_data[j].a_lname);		}		for (k=0; k<PROMOTIONAL_ITEMS_MAX; k++)		{			author_results_table[i].i_related[k]= odbc_data.search_results_odbc_data.eb.pp_data.i_related[k];			author_results_table[i].i_thumbnail[k]= odbc_data.search_results_odbc_data.eb.pp_data.i_thumbnail[k];		}	}	/* do search_by_title*/	odbc_data.search_results_odbc_data.eb.search_type=SEARCH_TITLE;	for (i=range->title_start; i<=range->title_end;i++)	{		digsyl2(odbc_data.search_results_odbc_data.eb.search_string, (long long)i+1, (long long)7);		rc = execute_search_results(&odbcc, &odbc_data);		if (rc == W_ERROR)		{			LOG_ERROR_MESSAGE("execute_search_results returned error");			kill(0, SIGUSR2);			pthread_exit(NULL);		}		/* copy the results out */		title_results_table[i].record_number=odbc_data.search_results_odbc_data.eb.items;		for (j=0; j<odbc_data.search_results_odbc_data.eb.items; j++)		{			title_results_table[i].search_results[j].i_id=odbc_data.search_results_odbc_data.eb.results_data[j].i_id;			strcpy(title_results_table[i].search_results[j].i_title, odbc_data.search_results_odbc_data.eb.results_data[j].i_title);			strcpy(title_results_table[i].search_results[j].a_fname, odbc_data.search_results_odbc_data.eb.results_data[j].a_fname);			strcpy(title_results_table[i].search_results[j].a_lname, odbc_data.search_results_odbc_data.eb.results_data[j].a_lname);		}		for (k=0; k<PROMOTIONAL_ITEMS_MAX; k++)		{			title_results_table[i].i_related[k]= odbc_data.search_results_odbc_data.eb.pp_data.i_related[k];			title_results_table[i].i_thumbnail[k]= odbc_data.search_results_odbc_data.eb.pp_data.i_thumbnail[k];		}	}	odbc_disconnect(&odbcc);	sem_wait(&sem_warm_up);	return NULL;}