[winGRASS] [GRASS5] display system

Malcolm Blue mblue at nb.sympatico.ca
Fri Jan 11 22:43:12 EST 2002


> -----Original Message-----
> From: grass5-admin at grass.itc.it [mailto:grass5-admin at grass.itc.it]On
> Behalf Of Glynn Clements
> Sent: Friday, January 11, 2002 8:39 PM
> To: Malcolm Blue
> Cc: wingrass at grass.itc.it; grass5 at grass.itc.it
> Subject: RE: [winGRASS] [GRASS5] display system
>
>
>
> Malcolm Blue wrote:
>
> > The need for the "#ifdef __W98__" was only to support the Windows 98
> > implementation of Cygwin.  Althought the XDRIVER worked fine on
> Windows NT
> > and Windows 2000, the implementation of fork() in the cygwin
> library did not
> > work properly under Win 98.  I was able to isolate the problem
> to the fork()
> > call, which in testing worked very inconsistently.
.
.
.
>
> Are you saying that the W11 driver works on NT/2K without the __W98__?
> Or does the above only apply to the "vanilla" XDRIVER (using a genuine
> Xlib and X server)?
>

The above applies to the vanilla XDRIVER, with an X Server.  Initially, the
__W98__ was added to work around the fork() problem on Win98.

The fork() call had to be disabled for the W11 native driver for a different
reason.  Since the W11 library handles all of the X functionality through
the native graphics rather than an X Server, after the Monitor window is
created in Graph_Set, the parent can't just exit or the monitor window will
be closed.  The child process still ran on WinNT, but the monitor window
belonged to the parent process, so the child process was useless at that
point.

Since the __W98__ define was already in place to work around the fork()
problem for Win98, it was utilized to resolve the native window problem as
well.  I was forgetting this when I said "only to support the Windows 98
implementation".

Calling Graph_Set() after the fork() should work on NT/2K, for either
"vanilla" or native XDRIVER, as you suggested since then it would be the
child process which creates the monitor window, however the __W98__ will
still be needed for Win98, unless fork() has been fixed for that
environment.


Malcolm





More information about the grass-dev mailing list