Skip to content

bpo-29569: threading.Timer class: Continue periodical execution till action return True#191

Closed
slytomcat wants to merge 1 commit intopython:masterfrom
slytomcat:Periodical.Timer
Closed

bpo-29569: threading.Timer class: Continue periodical execution till action return True#191
slytomcat wants to merge 1 commit intopython:masterfrom
slytomcat:Periodical.Timer

Conversation

@slytomcat
Copy link
Copy Markdown

I think that functionality of threading.Timer class can be easily extended to generate the sequence of runs with specified period. The idea comes from the GLib.timeout_add function.

http://bugs.python.org/issue29569

As most current CB functions that are used in Timer returns nothing (None) they will run only once as earlier. Only functions that returns True will continue their periodical execution.

There are two ways to stop such continues execution:

  • Return something that is not True from action function,
  • Call cancel method of Timer class.

Changed method run should look like:

    def run(self):
        """Continue execution after wait till function returns True"""
        while(not self.finished.wait(self.interval)):
            if not self.function(*self.args, **self.kwargs):
                break
        self.finished.set()

@slytomcat
Copy link
Copy Markdown
Author

slytomcat commented Feb 20, 2017

It is reopened (due to need to reorganize my clonned repo) CR #121

@slytomcat
Copy link
Copy Markdown
Author

Closed after discussion on the issue.

@slytomcat slytomcat closed this Jun 6, 2017
akruis added a commit to akruis/cpython that referenced this pull request Dec 27, 2018
Use/implement tp_dealloc/tp_new/tp_free according to the latest C-API
documentation.
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 27, 2026
Institutional-debt audit (b) per supervisor 12:05:10Z. All 4 untracked
phase plans verified against the canonical Phase 4+ roadmap. Each is
SUPERSEDED — by the canonical roadmap doc OR by completion of the
work it described. Headers added; plans retained in tree for
historical scoping rationale rather than deleted.

  docs/phase3d-next-subsystem-plan.md  (theologian 2026-04-17, 220 LOC)
    SUPERSEDED BY docs/post-phase3d-pure-c-roadmap.md (canonical
    Phase 4+ roadmap, supervisor-promoted 2026-04-27 07:20:19Z) +
    docs/phase4-hir-burndown-spec.md (Phase 4 HIR-area deep dive).
    Pre-Phase-3D 5-phase scoping; per-file LOC table informed the
    bottom-up area-prioritization in the canonical roadmap.

  docs/phase-crtp-elimination-plan.md  (undated, 55 LOC)
    SUPERSEDED BY docs/post-phase3d-pure-c-roadmap.md. Template-
    elimination work belongs to the HIR convergence sweep + the
    CRTP/template residue cleanup deferred until consumers go pure-C.

  docs/phase-h2-plan.md  (~2026-04-15, 103 LOC)
    SUPERSEDED BY COMPLETION. The H2-A/B C-struct migration landed:
    Python/jit/hir/hir_instr_c.h holds the 46+ HirInstrLayout /
    HirDeoptLayout / per-opcode struct definitions and the
    HIR_INSTR_FIELDS / HIR_DEOPT_FIELDS macros; cross-arch verification
    in Python/jit/hir/hir_instr_c_verify.cpp.

  docs/phase-h2e-container-plan.md  (~April, 91 LOC)
    SUPERSEDED BY COMPLETION. Per-field DeoptBase container conversion
    landed: descr_ → char *descr (E1), live_regs_ → PhxRegStateArray
    (E2), frame_state_ → raw void* (E3) — see HIR_DEOPT_FIELDS at
    Python/jit/hir/hir_instr_c.h:123 and the hir_c_destroy_instr_impl
    dispatcher.

Doc-only commit. Closes the canonical-version ambiguity surfaced by
pythia python#191 python#3 (audit (a) landed 11 canonical docs alongside these 4
unverified-as-superseded plans). No JIT/build/codegen surface;
trivial-push exemption.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants