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

aio-libs / multidict / 35833448154
86%

Build:
DEFAULT BRANCH: master
Ran 23 Sep 2026 07:46AM UTC
Jobs 1
Files 40
Run time 1min
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

23 Sep 2026 07:45AM UTC coverage: 87.876%. Remained the same
35833448154

push

github

web-flow
Explain why md_clear() keeps Py_CLEAR() on the GIL build (#1526)

<!-- Thank you for your contribution! -->

## What do these changes do?

`md_clear()` holds the last three stores to a shared entry field that do
not go through `_multilib/freethreading.h`. #1518 left them alone on
purpose but recorded the reason only in its own PR footer, so this puts
it
at the site. Nothing else changes.

Keeping the raw access wins on two counts. `Py_CLEAR()` is not a decref
plus `reset_identity()`: it skips the store entirely when the field is
already NULL, which the accessors cannot express. And the block is the
`#else` arm of `#ifdef Py_GIL_DISABLED`, so it compiles only on the GIL
build, where every accessor is plain field access and there is no
ordering
for one to carry; the free-threaded build reaches none of it, since
`_md_retire()` owns that path. A `clear_identity()` would therefore
exist
solely for a single GIL-only call site, which fails the bar #1518 set
for
adding an accessor: it has to unify the two builds.

The two alternatives were built and measured rather than argued about;
the
numbers are in the footer.

## Are there changes in behavior for the user?

No. Both builds compile to byte-identical machine code.

## Is it a substantial burden for the maintainers to support this?

No. It is four lines of comment.

## Related issue number

None. Split out of #1518, which reported these sites.

## Checklist

- [x] I think the code is well written
- [x] Unit tests for the changes exist (N/A, comment only; the existing
suite is the test)
- [x] Documentation reflects the changes (N/A, internal C header)
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`
- [x] Add a new news fragment into the `CHANGES/` folder
- [x] `make doc-spelling` passes and any new technical words are added
to `docs/spelling_wordlist.txt`

Drafted with Claude Opus 5; reviewed by @asvetlov.

<details>
<summary>Agent run details (optional, for reviewers)</summ... (continued)

765 of 1530 branches covered (50.0%)

Branch coverage included in aggregate %.

6860 of 7147 relevant lines covered (95.98%)

1.92 hits per line

Jobs
ID Job ID Ran Files Coverage
1 MyPy - 35833448154.1 23 Sep 2026 07:46AM UTC 80
87.87
GitHub Action Run
Source Files on build 35833448154
  • Tree
  • List 40
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35833448154
  • 7d74f3e3 on github
  • Prev Build on master (#35833094744)
  • Next Build on master (#35839030107)
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