Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to cancel SendMessage when switching apps in some cases #3825

Closed
nvaccessAuto opened this issue Jan 28, 2014 · 10 comments
Closed

Unable to cancel SendMessage when switching apps in some cases #3825

nvaccessAuto opened this issue Jan 28, 2014 · 10 comments
Assignees
Milestone

Comments

@nvaccessAuto
Copy link

Reported by jteh on 2014-01-28 08:57
We hook SendMessage and SendMessageTimeout so that we can cancel them from watchdog. The hook uses SendMessageTimeout in a loop with a pretty short timeout. Unfortunately, it seems that SendMessageTimeout blocks until the window responds when switching apps in some cases, regardless of the timeout. SMTO_BLOCK fixes this, but it also breaks PowerPoint (#2900). I guess it gets stuck handling some sort of nonqueued message, but I can't see that in the stack.

Str:

  1. Find an app that you can cause to freeze on demand. A manufactured test case is probably easiest. :)
  2. Open that app and Notepad++.
  3. Ensure you can switch from the freezing app to Notepad++ with one keystroke; e.g. fiddle with the alt+tab order.
  4. Cause the freeze.
  5. Switch to Notepad++.
    Watchdog can't recover from this freeze, no matter how hard it tries.

We can get around this by running SendMessageTimeout in a background thread.
Blocked by #3801, #3859

@nvaccessAuto
Copy link
Author

Comment 2 by jteh on 2014-01-29 04:43
Changes:
Milestone changed from None to next

@nvaccessAuto
Copy link
Author

Comment 3 by James Teh <jamie@... on 2014-01-29 04:44
In [3c44d74]:

Merge branch 't3825' into next: NVDA now recovers in more cases when switching away from applications that stop responding.

Incubates #3825.

Changes:
Added labels: incubating

@nvaccessAuto
Copy link
Author

Comment 4 by James Teh <jamie@... on 2014-01-31 08:02
In [043b984]:

Merge branch 't3825' into next

Incubates #3825.

@nvaccessAuto
Copy link
Author

Comment 5 by James Teh <jamie@... on 2014-02-03 10:39
In [2b2fd0a]:

Merge branch 't3825' into next

Incubates #3825.

@nvaccessAuto
Copy link
Author

Comment 6 by jteh on 2014-02-04 04:45
This branch now depends on the code for #3801.

@nvaccessAuto
Copy link
Author

Comment 7 by James Teh <jamie@... on 2014-02-04 05:54
In [74c3fb4]:

Merge branch 't3825' into next

Incubates #3825, #3801.

@nvaccessAuto
Copy link
Author

Comment 9 by James Teh <jamie@... on 2014-02-10 08:57
In [b590520]:

Merge branch 't3825' into next

Incubates #3825.

@nvaccessAuto
Copy link
Author

Comment 10 by James Teh <jamie@... on 2014-02-11 06:12
In [e145bbc]:

Merge branch 't3825' into next

Incubates #3825.

@nvaccessAuto
Copy link
Author

Comment 11 by James Teh <jamie@... on 2014-05-01 06:24
In [9b97de0]:

NVDA now recovers in more cases when switching away from applications that stop responding.

Fixes #3825.

Changes:
Removed labels: incubating
State: closed

@nvaccessAuto
Copy link
Author

Comment 12 by jteh on 2014-05-01 06:25
Changes:
Milestone changed from next to 2014.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants