Skip to content

Improve process for stopping python #2610

Open
@dbnicholson

Description

@dbnicholson

Checklist

  • the issue is indeed a bug and not a support request
  • issue doesn't already exist: https://github.com/kivy/python-for-android/issues
  • I have a short, runnable example that reproduces the issue
  • I reproduced the problem with the latest development version (p4a.branch = develop)
  • I used the grave accent (aka backticks) to format code or logs when appropriated

Versions

  • Python: 3.9
  • OS: Linux
  • Kivy: N/A
  • Cython: N/A
  • OpenJDK: 11

Description

Right now the way the Activity and Service classes stop python is to kill the whole process. That's a very heavy handed way to stop the python thread since it prevents the application taking any action when it has to stop.

I think an one way to do this would be to define a custom python exception and raise it in the python interpreter. The application could catch the exception, perform any actions it needs, and then return gracefully. From the Java side, it would run this via the JNI from a different thread than python is running in. In that case, I believe you could use one of these two mechanisms to raise the exception in the python main thread.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions