Пример #1
0
void do_import(device_data_t *data)
{
	pthread_t pthread;
	void *retval;

	/* I'm sure there is some better interface for waiting on a thread in a UI main loop */
	import_thread_done = 0;
	pthread_create(&pthread, NULL, pthread_wrapper, data);
	while (!import_thread_done) {
		import_thread_cancelled = process_ui_events();
		usleep(100000);
	}
	if (pthread_join(pthread, &retval) < 0)
		retval = "Odd pthread error return";
	if (retval)
		error(retval, data->name, data->devname);
}
Пример #2
0
GError *do_import(device_data_t *data)
{
	pthread_t pthread;
	void *retval;

	/* I'm sure there is some better interface for waiting on a thread in a UI main loop */
	import_thread_done = 0;
	progress_bar_text = "";
	progress_bar_fraction = 0.0;
	pthread_create(&pthread, NULL, pthread_wrapper, data);
	while (!import_thread_done) {
		import_thread_cancelled = process_ui_events();
		update_progressbar(&data->progress, progress_bar_fraction);
		update_progressbar_text(&data->progress, progress_bar_text);
		usleep(100000);
	}
	if (pthread_join(pthread, &retval) < 0)
		retval = _("Odd pthread error return");
	if (retval)
		return error(retval, data->vendor, data->product, data->devname);
	return NULL;
}