Skip to main content

``weakref`` for threads.

Project description

Allows threads in Python to create “weak references” to themselves that detect when the thread is no longer running, similar to how a weak reference detects when its referent object is no longer alive.

Provides a lightweight way for one or more independent pieces of code to register per-thread cleanup callbacks without coordination.

Versioning

This library’s version numbers follow the SemVer 2.0.0 specification.

Installation

pip install threadref

Usage

Import:

import threadref

Create a reference to the current thread, with a callback that will fire when the thread exits:

ref = threadref.ref(lambda ref: ...)

threadref.ref mirrors weakref.ref, except that:

  1. It references the thread that constructed it instead of taking a referent argument.

  2. It starts returning None instead of the threading.Thread object for its thread once the thread stops running, not once that object stops being alive.

So all weakref.ref caveats apply. In particular, threadref.ref instances must still be alive when their referent thread stops running, or their callback will not be called.

Portability

Internally, threadref is just a weak reference to a thread local variable, and this trick seems to only work on CPython implementations with the C implementation of threading.local.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

threadref-1.0.2.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

threadref-1.0.2-py2.py3-none-any.whl (3.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page