• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

penguinolog / urwid
90%
master: 92%

Build:
Build:
LAST BUILD BRANCH: table
DEFAULT BRANCH: master
Repo Added 20 Jun 2023 08:28AM UTC
Token nZ5xt2o2DKKtMXKnDA1uXfKzjCCxuWXzE regen
Build 1084 Last
Files 73
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix-event-loop-callbacks
branch: fix-event-loop-callbacks
CHANGE BRANCH
x
Reset
Sync Branches
  • fix-event-loop-callbacks
  • 2.4.1
  • 2.4.2
  • 2.4.3
  • 2.4.4
  • 2.4.5
  • 2.4.6
  • 2.5.0
  • 2.5.1
  • 2.5.2
  • 2.5.3
  • 2.6.0
  • 2.6.0.post0
  • 2.6.1
  • 2.6.11
  • 2.6.12
  • 2.6.13
  • 2.6.14
  • 2.6.15
  • 2.6.16
  • 2.6.2
  • 2.6.3
  • 2.6.4
  • 2.6.5
  • 2.6.6
  • 2.6.7
  • 2.6.8
  • 2.6.9
  • 3.0.0
  • 3.0.1
  • 3.0.2
  • 3.0.3
  • 3.0.4
  • 3.0.5
  • 4.0.0
  • 4.0.1
  • 4.0.10
  • 4.0.11
  • 4.0.12
  • 4.0.13
  • 4.0.2
  • 4.0.3
  • 4.0.4
  • 4.0.5
  • 4.0.6
  • 4.0.7
  • 4.0.8
  • 4.0.9
  • 4.1.0
  • 4.1.1
  • 4.1.2
  • 4.1.3
  • 4.1.4
  • 4.1.5
  • 4.1.6
  • 4.1.7
  • 4.2.0
  • 4.2.1
  • 4.2.2
  • 4.2.3
  • 4.2.4
  • 4.2.5
  • AttrMap_compat
  • ListBox_relative_scroll
  • add-xterm-insert-keypad-keys
  • add_run_in_exectutor
  • annotations
  • ansi-text-raw-display-attributes-3
  • artifacts_bdist
  • ascii-fallbacks
  • async_callbacks
  • async_in_event_loop
  • attr_shadow_attr
  • bar_graph
  • base_class_events
  • big_text_static_text
  • bigtext-fonts
  • black
  • bug_layout
  • bug_rows_max_listbox
  • bug_scrollable_no_size
  • build_limited_api
  • builld-system
  • bump_ruff
  • button-brackets-selectable-text
  • canvas_optimisation
  • changelog
  • changelog-5.0.0
  • changelog_406
  • changelog_407
  • changelog_501
  • changelog_gen
  • changelog_pre-release
  • check_mixed
  • ci/pypy-tests
  • ci_actionlint
  • ci_cd_extend
  • ci_cd_generate_changelog
  • ci_ci
  • ci_finalise_uv
  • ci_project
  • ci_py314
  • ci_tests
  • ci_try_enable_osx
  • ci_tuning
  • class_docstrings
  • classifiers
  • clean-up
  • clean_graphics
  • cleanup
  • cleanup_code
  • cleanup_helper
  • cleanup_unused
  • closed_io
  • code_cleanup
  • columns-hidden-columns
  • columns_accept_focus_widget
  • columns_consistency
  • columns_maxcol
  • columns_optimisation
  • columns_render
  • columns_special_case_fixed
  • columns_support_fixed
  • columns_zero_width
  • command-map-help
  • command_enum
  • command_map_api_extend
  • constants_symbols
  • container-focus-changed-hook
  • container_deprecated_setters
  • content_validation
  • corner_case_ellipsis_not_fit
  • cover_listbox_scrollable
  • coverage_no_tests
  • coverage_special
  • curses_fix
  • deduplicate
  • deprecate_content_delta
  • deprecate_progress_bar_set_done
  • deprecated_attr_wrap
  • deprecated_decoration
  • deprecated_fix
  • deprecated_positioning
  • deprecated_public
  • deprecation
  • deprecation-process-2
  • deprecation_binary_font
  • deprecation_deadline
  • deprecation_part0
  • deprecation_part1
  • deprecation_part2
  • deprecation_part3
  • deprecation_release_4
  • deprecation_super
  • deprecations
  • deprecations_for_5
  • deprecations_handle
  • deprecations_term_scroller
  • deque_walker_ansi_parser
  • descriptors
  • devcontainer
  • devcontainers
  • disallow_broken_wcwidth
  • display-leftovers-csi-key
  • doc
  • doc-draw-screen-thread
  • doc_env
  • doc_event_loop
  • doc_examples
  • doc_fix_typo
  • doc_raises
  • doc_windows
  • docs
  • docs_build
  • docs_changelog
  • docs_disconnect_by_key
  • docs_fixes
  • docs_readability
  • docs_screenshots
  • docs_scrollable
  • docstring-fields
  • docstrings
  • document_fix_graalpy
  • drop-down-widget
  • drop_c_helper
  • drop_unused
  • ds_store
  • edit-grapheme-cursor
  • edit-max-length
  • edit-postchange-intedit-ellipsis
  • edit-text-pos-readline-submit
  • edit_typing
  • editorconfig
  • empty_grid_flow
  • enable_typing
  • enable_windows_asyncio_tests
  • escape-sequence-fixes
  • escape_test
  • event_loop
  • event_loop_executor
  • example_browse
  • examples_code_style
  • examples_deprecated
  • exceptiongroup
  • expand_tabs
  • expose_widget
  • extend_scrollable
  • extended-keyboard
  • extra_input_handling
  • extra_tests
  • extra_typing
  • faint_extend
  • feat_font
  • feat_terminal_detection
  • feat_tornado
  • feature/ansi-osc8-hyperlinks
  • feature/inherit-attr
  • feature/osc8-hyperlinks
  • feature_canvas_repr
  • feature_fixed_text
  • feature_selectors
  • feature_wimp_pack
  • fix-ansitext-security
  • fix-asyncio-loop-cleanup
  • fix-attribute-defined-outside-init
  • fix-bargraph-security
  • fix-base-widget-mock-loop
  • fix-canvascache-leak
  • fix-columns-cursor-dropped-column
  • fix-columns-security
  • fix-deque-insert-index
  • fix-display-event-loop-typing
  • fix-edit-override-cursor
  • fix-edit-security
  • fix-event-loop-stale-watch
  • fix-focus-list-pickle
  • fix-gpm-tracking
  • fix-gridflow-wheel-and-hidden-focus
  • fix-input-parser-crashes
  • fix-layout-attributes-invalidate
  • fix-listbox-emptied-body-focus
  • fix-listbox-focus-moves
  • fix-listbox-security
  • fix-macos-dev-tty-selector
  • fix-main-loop-cleanup
  • fix-mouse-tracking-restart
  • fix-numedit-negative-zeros
  • fix-osc-esc-termination
  • fix-pile-security
  • fix-popup-false-widget-and-stubs
  • fix-posix-input-read
  • fix-progressbar-security
  • fix-raw-display-c1-controls
  • fix-raw-display-fallback-size
  • fix-raw-screen-socket-cycle
  • fix-scrollbar-decorated-widget
  • fix-scrollbar-keypress-before-render
  • fix-setup-g1-hang
  • fix-signal-handler-races
  • fix-signals-leak
  • fix-terminal-keypress-before-render
  • fix-text-control-chars
  • fix-text-pack-tab-stops
  • fix-text-security
  • fix-tree-security
  • fix-watch-pipe
  • fix-widget-races
  • fix-win32-console-size
  • fix-win32-input-thread
  • fix-zmq-watch-keys
  • fix/deque-insert-index-pypy
  • fix/hidden-focus-candidates
  • fix/space-wrap-zero-width-before-break
  • fix/vterm-defects-2
  • fix_asyncio_del_closed_loop
  • fix_build_windows
  • fix_display_typing
  • fix_docstring_event_loop
  • fix_docstrings
  • fix_edit
  • fix_font
  • fix_import_warn
  • fix_imports_moved
  • fix_listbox_render_empty_elements
  • fix_overlay
  • fix_ovl_items_replace
  • fix_py312
  • fix_readme
  • fix_regressions
  • fix_rerais
  • fix_rle_product
  • fix_rows_typing
  • fix_ruff
  • fix_term_scroll
  • fix_toc_html
  • fix_tree_listbox_render_empty_elements
  • fix_zope.interface
  • fixed_flow_overlay
  • fixes
  • flow_filler
  • follow-end-walkers
  • frame_fix
  • frame_focus
  • get_cursor_coord
  • gitter_badge
  • glib_deprecation
  • graalpy-pickle-and-checker-fixes
  • grid_flow_support_fixed
  • gridflow_focus
  • handle_mypy_warnings
  • handle_non_subclassed_widget
  • html_fragment
  • html_fragment-deprecate_monkeypatch
  • implement_scrollbar_layout
  • imports_deprecation_warning
  • initial_mypy
  • integeredit-default-corner-cases
  • isort
  • iterable_microopt
  • join_display
  • khal_insufficient_padding_width
  • kill_py37_py38
  • labeler_scope
  • labeler_update_rules
  • last-row-zero-width-and-escapes
  • lazy_imports
  • lazy_load_explicit_package
  • lb_max_left_right
  • line_box
  • line_box_double_inheritance
  • line_box_replace
  • linebox-long-title
  • linebox-title-markup
  • listbox-empty-not-selectable
  • listbox-fixes
  • listbox-flow-render
  • listbox-scroll-and-search
  • listbox_contents
  • listbox_guard_walker
  • listbox_tests
  • live-container-selectable
  • logging
  • mainloop-paused-context
  • maintenance_code_quality
  • maintenance_internal
  • maintenance_labeler
  • maintenance_pre_commit
  • maintenance_pyproject
  • maintenance_pytest
  • maintenance_ruff
  • maintenance_rules
  • maintenance_typing
  • maintenance_yamllint
  • master
  • meta_super_position
  • missed_test
  • missed_tests
  • monitored_list_move
  • monkeypathch_pad
  • move_listbox_tree
  • mro_simplefocuslistwalker
  • mypy_global_fixes
  • mypy_warnings
  • name-dec-private-modes
  • nested_popups
  • numedit
  • optimisations
  • optimise_signals
  • optional_dependencies
  • outdated-scripts
  • overlay-menu-signal
  • overlay_typing_repr
  • pack_extra
  • pack_on_edit
  • packaging_setup
  • packaging_tests
  • packaging_unstable_test
  • padding_given
  • padding_pack_weight
  • padding_support_fixed
  • palette-hashable-names
  • part_f_keys
  • part_osx
  • pep_424_lazy
  • pile_support_fixed
  • poc_gen_changelog
  • popup-launcher-close-on-menu
  • posix_raw_display_optimise
  • pr_template
  • pre-412
  • pre-release_changelog
  • pre_305
  • pre_4.0.2
  • pre_4010
  • pre_4011
  • pre_4012
  • pre_4013
  • pre_404
  • pre_405
  • pre_409
  • pre_410
  • pre_411
  • pre_413
  • pre_414
  • pre_415
  • pre_416
  • pre_417
  • pre_420
  • pre_421
  • pre_422
  • pre_423
  • pre_424
  • pre_425
  • pre_release
  • prep_2_2_2
  • prep_403
  • prepare_408
  • provisional_typing
  • py311_migration_single
  • py312_no_bdist
  • py313
  • py_version_description
  • pydocstyle
  • pylint
  • pylint_silence
  • pylint_warnings
  • pyrefly
  • pyrefly-unused-ignores
  • pyright-typing-fixes
  • raw_display_optimization
  • raw_display_var_naming
  • raw_display_windows_resize
  • raw_input_optimizations
  • ref_dead_code
  • refactor_scrollable
  • refactor_super
  • refactoring_code_style
  • refurb
  • refurb_fixes
  • regression_enums
  • regression_linebox
  • regression_ovl_relative
  • regression_treetools
  • regressions
  • rel_3.0
  • rel_3.0.1
  • rel_3.0.2
  • relnotes-release
  • remove_temporary_dev_script
  • requirements_security
  • restore_palette
  • restore_win32_support
  • rich_repr
  • ruff
  • ruff_0_2
  • ruff_bump
  • ruff_up
  • ruff_update
  • screenshots_trminus
  • scrollable
  • scrollable_annotations
  • scrollable_bar
  • scrollable_bug
  • scrollable_listbox
  • scrollbar-always-visible
  • scrollbar-cursor-coords
  • scrollbar-end-markers
  • scrollbar-zero-rows
  • scrollbar_estimated_size
  • security_rules
  • select-nav-wrap-around
  • select-navigation
  • selectable_icon
  • setuptools_scm_api
  • sgrmouse_shift_handle
  • shard_body_row_fix
  • shards-zero-row
  • shards_inconsistency
  • signals_subclass_abc
  • sigstp
  • simplify_code
  • sizing_columns
  • sizing_container_list_contents
  • sizing_fixes
  • slots-safe-places
  • special_case_empty_columns_pile
  • sphinx_build_gh_pages_ready
  • split_widget_enums
  • static_check_fix
  • static_checks
  • static_fix
  • static_fixes
  • static_update
  • stop_monkeypatch
  • str_optimise
  • strict_mypy
  • strict_typing
  • subiquity-inspired-bugfixes
  • support_sync_output
  • symbols_use_dataclass
  • table
  • terminal-demo-mouse
  • terminal-modified-keys
  • terminal-mouse-forwarding
  • terminfo-colors
  • terminfo-device-safety
  • test_req_fix
  • test_tree
  • test_vterm
  • testing-module
  • tests
  • tests_display_restart
  • tests_explicit_encoding
  • tests_org
  • tests_organisation
  • tests_windows
  • text-layout-cache-thread-safety
  • text_fixed_api
  • text_layout
  • text_layout_encoding
  • text_pack
  • tox_envs
  • tree
  • tree-navigation-helpers
  • tree_undeprecate
  • treetools_coverage
  • treetools_regression
  • trio_typing
  • type_annotations_trivial
  • typing
  • typing-delegate-mixin
  • typing_
  • typing_attr_map
  • typing_attr_wrap
  • typing_bar_graph
  • typing_big_text_progress_bar
  • typing_canvas
  • typing_containders
  • typing_display
  • typing_errors
  • typing_escape
  • typing_event_loop
  • typing_examples
  • typing_filler_
  • typing_fixes
  • typing_generic
  • typing_glib_loop
  • typing_issues
  • typing_listbox
  • typing_literal_constants
  • typing_monitored_list
  • typing_part_listbox
  • typing_polish
  • typing_radiobutton_checkbox
  • typing_silence
  • typing_split_repr-command_map
  • typing_text
  • typing_util_part_canvas
  • typing_widget
  • typing_widget_decoration
  • typing_widget_vterm_edit
  • typing_wimp
  • typo_job_name
  • un-deprecate_user_arg
  • unfocused-focus-attr
  • unicode_line_breaks
  • unicode_table
  • unicode_win
  • unwarn_escape
  • update-static-checkers
  • update_black
  • update_checkers
  • update_screenshots
  • upload_download_artifact
  • use_base_class_for_row_display
  • uuid_as_signal_key
  • vterm-alt-screen-kitty-keys
  • watch_pipe_implicit_none
  • wcwidth_unicode_auto
  • web_display
  • web_display_fixes
  • web_display_id
  • web_display_init
  • web_encoding_handling
  • web_resize
  • weight_float
  • wheels_only_upstream
  • widget-disable-toggle
  • widget_like
  • widget_mouse_keypress
  • widget_type
  • win_support_mark
  • window_resize_trottle
  • windows_asyncio
  • windows_curses
  • windows_event_debug
  • windows_garbage_commands
  • windows_last_line
  • windows_use_unicode_input
  • workflow_labeler
  • wsl_fix
  • zmq_loop_async

15 Oct 2026 05:55PM UTC coverage: 89.694%. First build
38781725636

push

github

penguinolog
Fix event loop callback races and idle handling

Callbacks that change loop state, failing callbacks and clock steps
left event loops crashed, stalled or busy.

- Idle callbacks may add or remove idle callbacks (all loops iterated the live dict).
- GLib and Twisted keep scheduling idle passes after an idle callback raises.
- GLib and Tornado stop the loop on ExitMainLoop or an error from an idle callback.
- Twisted logs a callback error when it does not manage the reactor, instead of printing it.
- ZMQ stops on a failing async callback without waiting for garbage collection.
- The fallback screen loop keeps alarms queued, so input can add earlier ones or remove them.
- asyncio and Trio remove_alarm() return False for an alarm that has fired.
- GLib, Tornado, Trio and Twisted replace an existing watch on the same descriptor.
- A Trio watch removed by a task woken in the same batch no longer runs its callback.
- Select and ZMQ alarms use the monotonic clock.
- Trio wakes the loop when an idle pass starts tasks, through its own socket pair.
- Trio runs idle callbacks after real work only: tasks started or woken by idle work,
  in any urwid loop of the Trio run, count only once I/O, a deadline or real work wakes them.

4973 of 5728 branches covered (86.82%)

Branch coverage included in aggregate %.

137 of 143 new or added lines in 8 files covered. (95.8%)

12520 of 13775 relevant lines covered (90.89%)

14.3 hits per line

Relevant lines Covered
Build:
Build:
13775 RELEVANT LINES 12520 COVERED LINES
14.3 HITS PER LINE
Source Files on fix-event-loop-callbacks
  • Tree
  • List 69
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
38781725636 fix-event-loop-callbacks Fix event loop callback races and idle handling Callbacks that change loop state, failing callbacks and clock steps left event loops crashed, stalled or busy. - Idle callbacks may add or remove idle callbacks (all loops iterated the live dict). ... push 15 Oct 2026 05:59PM UTC penguinolog github
89.69
See All Builds (1024)

Badge your Repo: urwid

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc