Skip to content

Update setup.py - #7

Merged
bendyer merged 1 commit into
masterfrom
setup_update
Oct 26, 2015
Merged

Update setup.py#7
bendyer merged 1 commit into
masterfrom
setup_update

Conversation

@pavel-kirienko

Copy link
Copy Markdown
Member

@bendyer

  • Extended description
  • The list of authors includes Ben Dyer (http://bugs.python.org/msg93286)
  • Author email points to the mailing list
  • URL points to the homepage rather than to GitHub page (the former has a link to the latter)
  • The classifier Topic set to Libraries rather than Build Tools (it's not a build tool, is it?)
  • The classifier Programming Language :: Python updated to remove Python version, since the package is intended to work with 3.x and 2.7

* Extended description
* The list of authors includes Ben Dyer (http://bugs.python.org/msg93286)
* Author email points to the mailing list
* URL points to the homepage rather than to GitHub page (the former has a link to the latter)
* The classifier `Topic` set to `Libraries` rather than `Build Tools` (it's not a build tool, is it?)
* The classifier `Programming Language :: Python` updated to remove Python version, since the package is intended to work with 3.x and 2.7
bendyer added a commit that referenced this pull request Oct 26, 2015
@bendyer
bendyer merged commit 170b1f0 into master Oct 26, 2015
@bendyer
bendyer deleted the setup_update branch October 26, 2015 08:07
pavel-kirienko added a commit that referenced this pull request Jul 18, 2026
Review findings #6, #7, #9 (one restructure of the send path).

- #6: the subject writer and unicast sent to interfaces serially against
  one shared deadline, so a congested first interface could consume the
  whole deadline and starve a healthy redundant one. Interfaces are now
  sent to concurrently via asyncio.gather; each interface's frames still go
  out in order.
- #7: concurrent senders shared one TX socket per interface, but asyncio's
  selector loop permits only one writer callback per fd, so an overlapping
  sock_sendto could be displaced and hang. Each socket now has its own
  asyncio.Lock; a new send_on_iface helper holds it for the transfer.
- #9: a send suspended mid-transfer while close() emptied _tx_socks used to
  index the emptied list and raise IndexError. The send path now snapshots
  the (iface, socket, lock) elements before the first await, so a racing
  close leaves the send index-safe; it fails cleanly on the closed socket
  and is aggregated into a SendError.

Aggregation semantics are unchanged: success means all frames delivered on
at least one interface; a partial failure warns rather than raising.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CabiCDQ5DNBYq8WDKRzG4Z
pavel-kirienko added a commit that referenced this pull request Jul 18, 2026
Follow-ups to findings #6/#7/#13 from the Codex design review:

- Bound each interface's lock acquisition by the transfer deadline, so a
  short-deadline sender queued behind a long-deadline holder of the same
  socket lock fails on its own budget instead of waiting the holder out.
- gather(return_exceptions=True) so every interface send settles before
  aggregation, leaving none running in the background.
- zip(strict=True) over the parallel interface/socket/lock lists to expose
  any length desync.
- Resolve IP_MULTICAST_ALL via getattr so a CPython build that exposes it
  is used in preference to the hardcoded Linux uapi value.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CabiCDQ5DNBYq8WDKRzG4Z
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