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

Dealing with suspended applications #600

Open
koekeishiya opened this issue Jun 30, 2020 · 1 comment
Open

Dealing with suspended applications #600

koekeishiya opened this issue Jun 30, 2020 · 1 comment
Labels
discussion Discussion

Comments

@koekeishiya
Copy link
Owner

Sort of related to #599, but this is a more general problem. In short, the issue is that the AX API is blocking. If we try to interact with an application that is currently suspended, we will halt until the AX API times out (currently set to 1 second).

The main issues are:

  1. If an application is suspended when yabai is launched, we are unable to observe this application and it will go untracked until the application is restarted, or yabai is restarted after the application has become responsive. This could potentially also happen if the application becomes unresponsive during or shortly after startup, before yabai is able to subscribe to notifications.

  2. If an application becomes unresponsive mid-session, and we try to interact with it in any way (get windows, move a window, etc.), it will block and the request will silently fail.

Issue 1. can more or less be solved by deferring the initialization of unresponsive applications til they report back as being responsive.

Issue 2. is tricky and there are many different ways to approach this, but none are really all that great.

@koekeishiya
Copy link
Owner Author

A solution for issue 1. has been implemented https:/koekeishiya/yabai/tree/track-unresponsive, but I want to give this a more thorough analysis before any change is made, and I think it is a bad decision to mix this in with the other ongoing changes that are currently being scheduled for the next release.

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

No branches or pull requests

1 participant