Re: Strange problem

Search this archive.

From: Matan Ziv-Av (matan@svgalib.org)
Date: Sun 16 Dec 2001 - 21:07:27 IST


Hi, Jay,

can you post the program that exhibits this problem? It will be easier
to decide where the problem is.


> While I'm at it, maybe there's a better way to program a flashing cursor?
> Here's what I'm doing:
> 
> 1) Early in the program, I set a timer that runs constantly throughout the
> program, even when I'm not usingthe cursor:
> 
>  signal(SIGVTALRM, catch_alarm);
>  interval.it_interval.tv_sec = 0;
>  interval.it_interval.tv_usec = 200000;
>  interval.it_value.tv_sec = 0;
>  interval.it_value.tv_usec = 200000;
>  setitimer(ITIMER_VIRTUAL, &interval, NULL);

ITIMER_VIRTUAL only counts when your program runs, so you only get a
signal every .2s that your process is running, which of course mught
depend on what other processes are running. See man setitimer.


> According to Rus, leaving this running doesn't add much (any?) overhead.
> 
> 2) Then, I have a global variable called "cursor" which can be either 0 or
> 1. Every time the timer goes off (5 times a second), I swap the value of
> cursor like so:
> 
>  void catch_alarm(int vtalrm)
>  {
>     cursor = (cursor == 1) ? 0 : 1;
>     signal(SIGVTALRM, catch_alarm);
>  }
> 
> 3) If I need the flashing cursor then, I print it or erase it, depending
> on the value of "cursor".
> 
> Is there a better way? My flashing cursor is fairly consistent, but
> sometimes it gets a little jittery when other processes are running. How
> does something like the bash shell cursor remain so fluid & constant?

The cursor in text mode is blinks in hardware. 

-- 
Matan Ziv-Av.                         matan@svgalib.org



------------------------------------------------------------------
Unsubscribe:  To:   listbot@svgalib.org
              Body: unsubscribe linux-svgalib


This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:24 IST