Xwin and Win95/98

Suhaib Siddiqi s_m_siddiqi@yahoo.com
Mon Jun 19 17:16:00 GMT 2000

OK, Win95/Win98 users:

Bad news for you.  Below is the abalysis of Peter
Busch.  Xwin lock up seems to be due to crapy design
of Win95/98. We opted to proceed with
worka nd cpmplete multiwindowing.

Since Win Millenium is around the corner, Win95/98 
crapy GUI/GDI would be outdated by M$ soon. XWIn works
perfect on Win Mellinum Beta3, tested by me and Peter.

We are short of developers and contributors therefore
cannot really spend too much time re-writing the whole
170 MB code again for Win98/95.
We may do so sometime in the future, but due to
developersa dn short on time, we opted to put Win95/98
issue at the bottom of our list.... unless someone
is willing to work on it.



Hi Suhaib,
I looked after the Win95/98 XWin problems last week.
The problem is due to the Win95/98 graphics
In Win95/98 all display output is single-threaded due
to the 16-bit
GDI/USER modules which consist essentially of (of
course non-reentrant)
Win 3.1 code, protected by the (in-)famous systemwide
Win16 mutex.
In Win95/98 the primary displayn surface can either
not be locked at all
or the locking process implicitely owns the Win16
mutex preventing
anything to be drawn onto the display via GDI /
Console until it unlocks
the display
This leads to a situation where the entire system is
deadlocked as soon
as XWin calls any function which invokes GDI , (i.e.
on the first
ErrorF() MessageBox() or printf() ).
The problem does not appear on Millenium beta 3 where
the access to
single surfaces, not the entire display is

There are 2 possibilities
1) the XWin code  could be modified to unlock the
DirectX surface
temporarily on every diagnostic / error output.
This is possibly the easiest way but would lead to a
scenario where
either XWin or all other Win95/98
applications would block since XWin relies on the
locked surface. Any
XWin crash (with locked surface) would force the user
to reboot the

2) we could enable XWin to be used in parallel with
the Win95/98 desktop
without blocking by mapping the
display surface without using the Win95/98 DirectX
This could be done by either writing a display wrapper
driver a la xfddx
for Win95/98 or a VxD which performs
the mapping. Personally I would prefer this choice.

Neither solution can be implemented overnight.

I now have to decide whether to finish the
NT/Win2K/Millenium xf_dx
library independently or to address the
Win95/98 problems first.

What's your opinion ?


Do You Yahoo!?
Send instant messages with Yahoo! Messenger.

More information about the Cygwin-xfree mailing list