On Thu, 04 Mar 2010, Pritpal Bedi wrote: Hi,
> > I cannot do that. > > In the moment when you added HB_GTI_NOTIFIERBLOCK you effectively > > blocked the possibilities of serving window loop by non HVM thread > > so first this feature has to be removed > I did not know that at all. And probably I do not know much about GT > internals. > Can you kindly update me how a passive thread will work and why > HB_GTI_NOTIFIERBLOCK is a show-stopper to achieve this? HB_GTI_NOTIFIERBLOCK introduces PRG code executed from window message loop. It means that we cannot create non HVM thread to create windows and process this window messages because such thread cannot activate PRG code. We can quite easy create non HVM thread inside GTWVT which will create windows and process all it's messages taking data to display for GT buffers and putting input events to keyboard/mouse queue. We will need only simply mutex to synchronize access to GT structure. Such worker threads resolves also possible deadlocks which can appear in MT MS-Win GUI applications what should greatly helps users which are not very familiar with concurrent programing and MS-Windows API restrictions. But the problem appears when we have HB_GTI_NOTIFIERBLOCK because non HVM thread cannot execute PRG code. In MT mode we can create separate HVM thread to execute it but it will work in different way then current code so it will be necessary to define new conditions how such feature should work of course it will not work in ST applications. best regards, Przemek _______________________________________________ Harbour-users mailing list (attachment size limit: 40KB) [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour-users
