David Wilson
ee0f21d57f
core: remove Queue locking from broker loop.
...
Move defer handling out of Broker and into Waker (where it belongs?).
Now the lock must only be taken if Waker was actually woken.
Knocks 400-item run_hostname_100_times from 10.62s to 10.05s (-5.3%).
7 years ago
David Wilson
17aef51e6e
tests: Import .local() latency test
7 years ago
David Wilson
a8a31728a0
tests: Import Latch soak test
7 years ago
David Wilson
15194abb8c
Remove testlib.py from test.sh.
7 years ago
David Wilson
d6f49a003b
issue #106 : ansible: beginnings of FileService.
7 years ago
David Wilson
6118d4e6df
tests: set MITOGEN_LOG_LEVEL=debug in .travis.yml too.
7 years ago
David Wilson
03fcf057dd
tests: just call log_to_file() from testlib
...
Now we can run test.sh with MITOGEN_LOG_LEVEL=debug and things just
work.
7 years ago
David Wilson
761cd9eaf8
tests: import tty_create_child_test.py.
7 years ago
David Wilson
7b12f84366
core: support CallError(str) for service.py.
7 years ago
David Wilson
c33bc22f21
docs: fix reading time tracking :(
7 years ago
David Wilson
45b81009f3
parent: call TIOCSCTTY on FreeBSD. Closes #171
7 years ago
David Wilson
cd1683b924
ansible: split environment editing into a separate class.
7 years ago
David Wilson
fccca54068
tests: ensure OpenSSL is initialized prior to test.
7 years ago
David Wilson
e28e627f55
ssh: Disable GlobalKnownHostsFile with host_key_checking is off
7 years ago
David Wilson
4903052f42
fork: reseed Python/SSL PRNGs
...
Mac's SSL seems to have a pthread_atfork handler or similar that does
this for us, no clue if Linux is the same.
7 years ago
David Wilson
7f4368db87
docs: pad out signal handlers note
7 years ago
David Wilson
c34f8dbef3
core: Fix Receiver.__iter__ loop termination.
...
Since the Message refactoring from a few weeks back, __iter__ has had
nothing to throw ChannelError if the remote sent _DEAD.
7 years ago
David Wilson
671f753207
core: cache result of unpickling message.
7 years ago
David Wilson
5b87d10ae6
core: clean up no longer useful Latch.__repr__
...
Those fields are always None since the recent fork cleanup work.
7 years ago
David Wilson
d4bc44468b
core: fix crash in fork stress test
...
14:50:04 E mitogen: mitogen.fork.Stream('fork.7431') crashed
Traceback (most recent call last):
File "/home/dmw/src/mitogen/mitogen/core.py", line 1287, in _call
func(self)
File "/home/dmw/src/mitogen/mitogen/core.py", line 758, in on_receive
return self.on_disconnect(broker)
File "/home/dmw/src/mitogen/mitogen/parent.py", line 370, in on_disconnect
super(Stream, self).on_disconnect(broker)
File "/home/dmw/src/mitogen/mitogen/core.py", line 721, in on_disconnect
fire(self, 'disconnect')
File "/home/dmw/src/mitogen/mitogen/core.py", line 162, in fire
return [func(*args, **kwargs) for func in signals.get(name, ())]
File "/home/dmw/src/mitogen/mitogen/core.py", line 1160, in <lambda>
listen(stream, 'disconnect', lambda: self.on_stream_disconnect(stream))
File "/home/dmw/src/mitogen/mitogen/core.py", line 1142, in on_stream_disconnect
for context in self._context_by_id.itervalues():
RuntimeError: dictionary changed size during iteration
7 years ago
David Wilson
95d50adb14
unix: simplify return statements.
7 years ago
David Wilson
d68833757b
docs: slightly bikeshed last testimonial
7 years ago
David Wilson
adf527440f
issue #155 : parent: split out make_call_msg().
7 years ago
dw
d23a6174a2
Merge pull request #167 from danielcompton/patch-1
...
Add testimonial from Clojars
7 years ago
David Wilson
0dbb63ae3d
docs: typo
7 years ago
David Wilson
b254373cd7
docs: add local task serialization risk
7 years ago
David Wilson
7698f86a9f
Whups, don't always enable profiling in mitogen.main()
7 years ago
David Wilson
52d980ad58
issue #155 : fork: nop out get_boot_command, it's become quite expensive
...
-16% reduction in fork cost.
7 years ago
David Wilson
e7c98e3bda
Have mitogen.main(profiling=True) effect the master process too
7 years ago
David Wilson
a868498469
Replace assertions with fixed checks; closes #157 .
7 years ago
David Wilson
4dc001f496
parent: fire disconnect upon receiving DEL_ROUTE for context
...
This lets context.shutdown(wait=True) succeed in the master or any
parent.
7 years ago
David Wilson
862ec21160
core: allow shutdown triggered by any parent, not just immediate parent
7 years ago
David Wilson
0f08783330
core: fix NameError on disconnect
7 years ago
David Wilson
198bec3320
issue #168 : ansible: Mitogen must also ignore the extra arguments.
7 years ago
David Wilson
26051caf4c
ansible: Pass through connection loader kwargs; closes #168
7 years ago
David Wilson
749eddac71
ansible: fix flake8 errors in helpers.py.
7 years ago
Daniel Compton
871b853b59
Add testimonial from Clojars
7 years ago
David Wilson
2813d1a968
docs: update
7 years ago
David Wilson
3e384db7c2
service: add basic security policy types.
7 years ago
David Wilson
2ea65420d0
issue #155 : fork.py v2, now with full resource cleanup
7 years ago
David Wilson
872181bebd
issue #155 : core: implement Side._on_fork()
...
Central mechanism for deleting all non-Latch file descriptors belonging
to the parent process during fork().
7 years ago
David Wilson
80642ed9ec
issue #155 : core: remove one duplicate set_cloexec().
7 years ago
David Wilson
cb71ce94c4
issue #155 : core: be more careful reconfiguring stdio
...
Many dragons present!
7 years ago
David Wilson
443c94eb39
issue #155 : core: prevent set_cloexec() use on standard handles
7 years ago
David Wilson
41ae6623c6
issue #155 : parent: generic name generation
...
Let us override a class attribute to specify prefix from fork.py, rather
than reimplement the same logic.
7 years ago
David Wilson
22cc1a3689
issue #155 : core: refactor Latch to avoid TLS use
...
TLS destructors are not called after fork, therefore we must explicitly
track a global list of free file descriptors, and arrange for that list
to explicitly be destroyed from fork.py.
7 years ago
David Wilson
2cf9edc895
issue #155 : core: ensure reused Importer gets new Context reference.
...
More hacky layering violations.. force Importer's _context attribute to
our new parent.
7 years ago
David Wilson
cd5b37ea5b
core: Use Side.read() rather than bare os.read().
7 years ago
David Wilson
1155de85af
issue #155 : parent: propagate context name too.
...
This allows context_by_id() in the master to succeed in returning a
Context with a .name matching the context's name, needed for correct
logging.
Previously this would have logged the empty string, because the master
had no mechanism to know the name of a context created by a child.
7 years ago
David Wilson
5579ac936b
issue #155 : docs: more fork() liability warnings
7 years ago