[comp.windows.x] Xfig under DG/UX 4.20

zifrony@TAURUS.BITNET (05/28/90)

I wish to thank Dow Dewar and Dave Brennen from DG, which lent me
a helping hand.

Any DG/UX users, please note the following:

1. Add a signal(SIGALRM, blink) ; statement in the beginning of
   the blink() routine (in blink.c).  This is to reinstall the
   signal handler.

2. Use libXt.a and libXmu.a from the standard X11 distribution of
   DG/UX 4.20; build libXaw.a from the sources on the contribution
   tape, using -DNOT_MOTIF as a compiler option.

Thanks again to those who help,

Doron Zifrony

envbvs@epb2.lbl.gov (Brian V. Smith) (05/30/90)

In article <1337@taurus.BITNET>, zifrony@TAURUS.BITNET writes:
|> I wish to thank Dow Dewar and Dave Brennen from DG, which lent me
|> a helping hand.
|> 
|> Any DG/UX users, please note the following:
|> 
|> 1. Add a signal(SIGALRM, blink) ; statement in the beginning of
|>    the blink() routine (in blink.c).  This is to reinstall the
|>    signal handler.
|> 
|> 2. Use libXt.a and libXmu.a from the standard X11 distribution of
|>    DG/UX 4.20; build libXaw.a from the sources on the contribution
|>    tape, using -DNOT_MOTIF as a compiler option.
|> 

Sorry, I have to disagree.  The signal() method is an inherently unstable
method of binking the cursor in X.  The problem is that, since the X library
is not re-entrant, there exists a good possibility that you will interrupt
an already-in-progress Xlib call with another Xlib call in the blink routine.

It's funny that this is reported to be the SOLUTION to the segmentation
violation, since this is what causes it in the first place.

The solution is the use XtAddTimeOut() as I have done in xfig 2.0 to blink
the cursor.  You can get xfig 2.0 from expo.lcs.mit.edu or comp.sources.x.

_____________________________________
Brian V. Smith    (bvsmith@lbl.gov)
Lawrence Berkeley Laboratory
I don't speak for LBL, these non-opinions are all mine.