[winGRASS] [GRASS5] display system

Glynn Clements glynn.clements at virgin.net
Fri Jan 11 19:39:21 EST 2002


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.
> 
> The Cygwin faq does (or did) identify issues with fork().  The solution that
> I implemented (and Mike Thomas had committed to the CVS) was to spawn the
> child process from mon.start rather than fork() within the XDriver (as
> implemented in devices/lib/main.c).
> 
> The problems that I identified with fork() on Win98 were not consistent with
> each test.  Sometimes the child appeared to start, othertimes not.  It
> always seemed to die before the monitor was started, which may be caused by
> the problem with inheriting windows resources.  I suspect it is related to
> Win 98's poor support for threads/process management.  If I remember
> correctly, the process id and parent process id were not consistently
> handled during the tests, either.
> 
> The bottom line is that fork() does work OK on WinNT and Windows 2000, but
> not on Win98 (unless the Cygwin implementation of fork() has been fixed).
> The __W98__ fix is not needed for all cygwin users, just for Win98. Any
> changes you make will have to take into account the limitations of Win98,
> but don't necessarily have to be in the same for all Cygwin users.

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)?

-- 
Glynn Clements <glynn.clements at virgin.net>



More information about the grass-dev mailing list