continue;
static void watch_loop(void) {	int cnt = 0, tile_diffs = 0;	double dt = 0.0, dtr = 0.0;	time_t start = time(0);	if (use_threads) {		rfbRunEventLoop(screen, -1, TRUE);	}	while (1) {		got_user_input = 0;		got_pointer_input = 0;		got_keyboard_input = 0;		if (! use_threads) {			double tm = 0.0;			dtime(&tm);			rfbPE(screen, -1);			dtr = dtime(&tm);			fb_update_sent(NULL);			if (! cursor_shape_updates) {				/* undo any cursor shape requests */				disable_cursor_shape_updates(screen);			}			if (screen && screen->clientHead && 			    check_user_input(dt, dtr, tile_diffs, &cnt)) {				/* true means loop back for more input */				continue;			}		}		if (shut_down) {			clean_up_exit(0);		}		if (do_copy_screen) {			do_copy_screen = 0;			copy_screen();		}		check_xevents();		check_connect_inputs();				check_padded_fb();				if (first_conn_timeout < 0) {			start = time(0);			first_conn_timeout = -first_conn_timeout;		}		if (! screen || ! screen->clientHead) {			/* waiting for a client */			if (first_conn_timeout) {				if (time(0) - start > first_conn_timeout) {					rfbLog("No client after %d secs.\n",					    first_conn_timeout);					shut_down = 1;					continue;				}			}			usleep(200 * 1000);			continue;		}		first_conn_timeout = 0;		if (nofb) {			/* no framebuffer polling needed */			if (cursor_pos_updates) {				check_x11_pointer();			}			continue;		}		if (watch_bell) {			/*			 * check for any bell events.			 * n.b. assumes -nofb folks do not want bell...			 */			check_bell_event();		}		if (button_mask && (!show_dragging || pointer_mode == 0)) {			/*			 * if any button is pressed do not update rfb			 * screen, but do flush the X11 display.			 */			X_LOCK;			XFlush(dpy);			X_UNLOCK;		} else {			/* for timing the scan to try to detect thrashing */			double tm = 0.0;			dtime(&tm);			RFBUNDRAWCURSOR(screen);			if (use_snapfb) {				int t, tries = 5;				copy_snap();				for (t =0; t < tries; t++) {					tile_diffs = scan_for_updates(0);				}			} else {				tile_diffs = scan_for_updates(0);			}			dt = dtime(&tm);			check_x11_pointer();		}		/* sleep a bit to lessen load */		usleep(waitms * 1000);		cnt++;	}}