- 19 Mar, 2018 40 commits
-
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
Fix a MyPy warning by only passing lists to select.select(). At least on Python 2.x, select.select() was internally converting the sets to lists anyway. By the time lists become inefficient here, it is likely that select.select() itself will also be inefficient, and need replaced with .poll() or similar. No discernible performance different when transferring django.db.models to a local VM.
-
David Wilson authored
-
David Wilson authored
* Children should never generate a request for a module that has already been sent, however there are a variety of edge cases where, e.g. asynchronous calls are made into unloaded modules in a set of children, causing those children to request modules (and deps) in a different order, which might break deduplication. So add a warning to catch when this happens, so we can figure out how to handle it. Meanwhile it's only a warning since in the worst case, this just adds needless latency. * Don't bother treating sent packages separately, there doesn't seem to be any need for this (after docs are updated to match how preloading actually works now).
-
David Wilson authored
Overwriting 'fullname' variable caused basically nonsensical filtering. Result was including the module being searched in the list of dependencies, which was causing ModuleResponder to send it early, which was causing contexts to start importing the module before preloading of dependencies had completed.
-
David Wilson authored
-
David Wilson authored
* SIGTERM safety net prevents profiler from writing results, so disable it when profiling is active. * fix warning corrupting stream when profiling=True
-
David Wilson authored
Knocks 4kb off network footprint for a proxy connection.
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
Previously we'd send just None in GET_MODULE reply, but now since there is no single request-reply structure, we must include the fullname in the LOAD_MODULE response and make all of its data fields None to indicate the same.
-
David Wilson authored
-
David Wilson authored
Doesn't yet implement the rules in the docs, but I think the doc rules could maybe change to match this. Needs lots of cleanup work and thorough testing, but this is a great start.
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
* Don't implement the rules for when preloading occurs yet * Don't attempt to streamily preload modules downstream while this context hasn't yet received the final module. There is quite significant latency buried in here, but for now it's a lot of work to fix. This works well enough to handle at least the mitogen package, but it's likely broken for anything bigger.
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
For gevent, just as in 5f7633cd569f671750ea7f35f6ca79118b345205
-
David Wilson authored
It seems gevent automatically sets blocking behaviour on fds produced by the socket module, which causes the Python process we fork to fail horribly. So in the child, always reset the blocking flag.
-
David Wilson authored
-
David Wilson authored
..and enable privileged=True since that's needed for ptrace()
-
David Wilson authored
-
David Wilson authored
Closes #70
-
David Wilson authored
Either execvp succeeds, in which case the process image is replaced, or execvp throws an exception, in which case control flow exits the frame anyway.
-
David Wilson authored
-