Installing Zoo Tycoon problem (another one)

pvriens at xs4all.nl pvriens at xs4all.nl
Sun Mar 21 04:15:48 CST 2004


> Hi,
>
> while adding some extra tracing and looking into the (huge) logfiles, I
> found the following and want some opinion about that:
>
> The logfile shows a lot of calls to:
>
> X11DRV_MsgWaitForMultipleObjectsEx
>
> with all parameters being  or NULL:
>
> 5256478:000e:Call
> x11drv.MsgWaitForMultipleObjectsEx(00000000,00000000,00000000,00000000,00000000)
> ret=4090e51c
> 5256479:000e:Call
> kernel32.WaitForMultipleObjectsEx(00000000,00000000,00000000,00000000,00000000)
> ret=40e09bd7
> 5256480:trace:sync:WaitForMultipleObjectsEx (00000000, (nil), 0, 00000000,
> 0)
> 5256481:000e:Ret  kernel32.WaitForMultipleObjectsEx() retval=ffffffff
> ret=40e09bd7
> 5256482:000e:Ret  x11drv.MsgWaitForMultipleObjectsEx() retval=ffffffff
> ret=4090e51c
>
> (the sync trace is something I added)
>
> x11drv.MsgWaitForMultipleObjectsEx calls WaitForMultipleObjectsEx again
> with all parameters being  or NULL.
>
> What's the use of this, shouldn't we bail out if everything is 0. What's
> the use of waiting for something that isn't specified ?
>
> Almost immediatly after those calls are made, my setup fails. This could
> be a coincedence, but ....
>
> Cheers,
>
> Paul.
>
>
>

The caller of x11drv.MsgWaitForMultipleObjectsEx seems to be 
user32.PeekMessageA.

The first thing that PeekMessageA/W does is check for graphic events:

    /* check for graphics events */
    if (USER_Driver.pMsgWaitForMultipleObjectsEx)
        USER_Driver.pMsgWaitForMultipleObjectsEx( 0, NULL, 0, 0, 0 );

But does this realy retrieve all messages as the parameter 3 and 4 would
suggest (wMsgFilterMin and wMsgFilterMax being 0).

If so wouldn't retrieved messages be lost_in_space as there is nothing
prepared for the return message (first parameter being no pointer)

Cheers,

Paul.



More information about the wine-users mailing list