David Wilson
76ec4f201c
issue #413 : paper over harmless duplicate del_route()
...
Ideally it would only be called once, and in future maybe it can, but
right now we need to cope with these cases:
* Downstream parent notifies us of disconnection (DEL_ROUTE)
* We notify ourself of disconnection
* We notify ourself and so does downstream parent
It's case 3 that causes the error.
6 years ago
David Wilson
fea0fb41fc
docs: update Changelog; closes #288
6 years ago
David Wilson
33011af9a5
issue #387 : update Changelog.
6 years ago
David Wilson
cf97932fad
core: dead messages have optional body, use it everywhere; closes #387 .
6 years ago
David Wilson
fdcd6810e1
Merge remote-tracking branch 'origin/dmw'
...
- issue #416 .
6 years ago
David Wilson
176fe55bbd
issue #416 : update Changelog
6 years ago
David Wilson
c09780aeb0
core: fix add_handler(respondent=..) memory leak
...
Closes #416 .
6 years ago
David Wilson
7141e9c11f
Merge remote-tracking branch 'origin/dmw'
...
- move more docs into source code
- make tests detect leaked threads, FDs
- #405 , #406 , #417
6 years ago
David Wilson
4ac9cdce7c
docs: update Changelog; closes #417 .
6 years ago
David Wilson
01e65d7865
docs: update Changelog; closes #406 .
6 years ago
David Wilson
802de6a8d5
issue #406 : clean up DiagLogStream handling and connect() failure.
...
When Stream.connect() fails, have it just use on_disconnect(). Now there
is a single disconnect cleanup path.
Remove cutpasted DiagLogStream setup/destruction, and move it into the
base class (temporarily), and only manage the lifetime of its underlying
FD via Side.close(). This cures another EBADF failure.
6 years ago
David Wilson
e01c8f2891
issue #406 : 3.x syntax fixes.
6 years ago
David Wilson
586c6aca9a
issue #406 : unix: fix ordering of stop_receive/close.
6 years ago
David Wilson
661e274556
issue #406 : ensure is_path_dead() socket is finalized.
6 years ago
David Wilson
411af6c167
issue #406 : unix: don't leak already-closed socket object
...
if Side.close() closes the socket (which it does), and it gets reused,
GC will cause socketobject.__del__ to later delete some random FD.
6 years ago
David Wilson
dc3db49c5a
issue #406 : more leaked FDs when create_child() fails.
6 years ago
David Wilson
003526ef7b
issue #406 : fix thread leaks in unix_test too.
6 years ago
David Wilson
17631b0573
issue #406 : parent: close extra_fd on failure too.
6 years ago
David Wilson
b3841317dd
issue #406 : clean up FDs on failure explicitly
...
The previous approach was crap since it left e.g. socketpair instances
lying around for GC with their underlying FD already closed, coupled
with FD number reuse, led to random madness when GC finally runs.
6 years ago
David Wilson
eae1bdba4e
tests: make minify_test print something useful on failure
6 years ago
David Wilson
802efa6ea6
issue #406 : ensure broker_test waits for broker exit.
6 years ago
David Wilson
10af266678
issue #406 : attempt Broker cleanup in case of a crash.
6 years ago
David Wilson
175fc377d2
tests: remove hard-wired SSL paths from fork_test.
6 years ago
David Wilson
3da4b1a420
tests: verify only main/watcher threads exist at teardown
6 years ago
David Wilson
b0dd628f07
issue #406 : parent_test fixes, NameError in log_fd_calls().
6 years ago
David Wilson
375182b71b
issue #406 : don't leak side FDs on bootstrap failure.
6 years ago
David Wilson
14b389cb46
issue #406 : don't leak FDs on failed child start.
6 years ago
David Wilson
6ff1e001da
issue #406 : log socketpair calls too.
6 years ago
David Wilson
70c550f50c
issue #406 : close stdout pipes in parent_test
6 years ago
David Wilson
9b3cb55a8b
issue #4096 : import log_fd_calls() helper.
6 years ago
David Wilson
8a0b343760
issue #406 : test for FD leak after every TestCase
6 years ago
David Wilson
e9a6e4c3d2
issue #406 : add test.
6 years ago
David Wilson
4230a93557
issue #406 : update Changelog.
6 years ago
David Wilson
d1c2e7a834
issue #406 : call Poller.close() during broker shutdown.
6 years ago
David Wilson
e4280dc14a
core: Don't crash in Waker.__repr__ if partially initialized.
6 years ago
David Wilson
87e8c45f76
core: fix minify_test regression introduced in 804bacdadb
...
The minifier can't handle empty function bodies, so the pass statements
are necessary.
6 years ago
David Wilson
16c364910a
core: avoid redundant write() calls in Waker.defer()
...
Using _lock we can know for certain whether the Broker has received a
wakeup byte yet. If it has, we can skip the wasted system call.
Now on_receive() can exactly read the single byte that can possibly
exist (modulo FD sharing bugs -- this could be improved on later)
6 years ago
David Wilson
6fdc45da1a
docs: Changelog concision
6 years ago
David Wilson
5bdb745f07
docs: howitworks tweaks
6 years ago
David Wilson
8e4c164d93
issue #388 : fix Sphinx markup
6 years ago
David Wilson
5eff8ea4fb
tests: make result_shell_echo_hi compare less of the timedelta; closes #361
...
Assuming less than one second is too much to ask from Travis.
6 years ago
David Wilson
804bacdadb
docs: move most remaining docstrings back into *.py; closes #388
...
The remaining ones are decorators which don't seem to have an autodoc
equivlent.
6 years ago
David Wilson
711aed7a4c
core: split _broker_shutdown() out into its own function.
...
Makes _broker_main() logic much clearer.
6 years ago
David Wilson
8ef8f7b123
Merge remote-tracking branch 'origin/dmw'
...
- issue #323 , #333 WSL workaround.
6 years ago
David Wilson
1f8c09e43f
issue #333 : update Changelog.
6 years ago
David Wilson
1d32ed3b5a
core: avoid shutdown() in IoLogger on WSL; closes #333 .
6 years ago
David Wilson
07fefa4067
kubectl: paper over importer issue by removing unicode.
6 years ago
David Wilson
1f9c412b4b
Add cute demo GIF to README.md.
6 years ago
David Wilson
f8f2f9d718
docs: update Changelog; closes #352 .
6 years ago
David Wilson
677dbdb0e7
docs: update Changelog; closes #351 .
6 years ago