[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