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

properly sequenced object shutdown for modules using Python client #614

Open
d-w-moore opened this issue Aug 26, 2024 · 0 comments
Open
Assignees
Milestone

Comments

@d-w-moore
Copy link
Collaborator

d-w-moore commented Aug 26, 2024

(PRC = Python iRODS Client)
Some modules (Example: iRODFS) may leverage PRC-level objects, but possibly sit at a different (likely higher) abstraction level , and so it would be common for these modules' authors to prefer that their objects finalization should occur as prelude or perhaps even postlude to PRC objects' shutdown.

in iRODSFS's case for example, their handles are higher-level and should be closed first, before PRC internal shutdown functions execute.
(PRC internally shuts down network connections in certain situations, e.g. to guarantee saving of data object content written but not yet flushed, and to return data objects to an unlocked status.)
We should provide an interface to guarantee all of this can happen in the proper sequence.

Example
from some_module_using_prc:

  • irods.register_function_for_client_shutdown ( my_close_function , RUN_BEFORE_PYTHON_IRODSCLIENT_SHUTDOWN)
@d-w-moore d-w-moore self-assigned this Aug 26, 2024
@korydraughn korydraughn added this to the 3.0.0 milestone Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants