How Compiz detect unresponsive window

Asked by JC

From my investigation so far, Compiz starts a timer at the beginning to send a ping event periodically and check if the message is processed by event handle routine in time. But I don't understand in which condition the 'ping' event won't be handled in time thus causes the window in unresponsive( window->alive == false ).

Also I found in Ubuntu, Compiz could detect unresponsive for most application's window, but I wrote a test program that has a dead loop inside, but it never be treat as unresponsive by Compiz(window not greyed out):

what my program does:

    XSelectInput(dis, win, PointerMotionMask | ButtonPressMask | ButtonReleaseMask);

    while(1) {
        while (XPending(dis)) {
            XEvent evt;
            XNextEvent(dis, &evt);
        }

        while(1) {}
    }

Question information

Language:
English Edit question
Status:
Expired
For:
Compiz Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.