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

xolox / python-executor / 155
91%

Build:
DEFAULT BRANCH: master
Ran 01 Jun 2016 09:22PM UTC
Jobs 5
Files 8
Run time 47s
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

pending completion
155

push

travis-ci

xolox
Refactor executor / proc separation of concerns* (backwards incompatible!)

In executor 7.7 the process management functionality was decoupled from
external command execution in order to re-use the process management
functionality in my proc package (this was integrated into proc 0.4).

In retrospect I implemented this refactoring (in November '15) too
hastily because the UNIX signal handling doesn't belong in the
executor package (it's meant to be portable).

Last weekend I decided to finally do something about this! I'm only
committing this now because it took me days to clean up, stabilize,
document and test the refactoring :-). A high level summary:

 - All process manipulation that uses UNIX signals is being moved to
   the `proc' package, that includes things like SIGSTOP / SIGCONT.
   This means that the methods ControllableProcess.suspend() and
   ControllableProcess.resume() are no longer available.

   This will break fresh installations of my `proc' package until I
   release a new version, because I haven't pinned the max version of
   dependencies I control. The new release of `proc' is waiting to be
   uploaded though :-).

 - The `executor' package no longer keeps references to subprocess.Popen
   objects after the process has finished, to allow garbage collection.
   This should resolve an issue I was seeing recently when I was pushing
   the limits of executor command pools and ran into `IOError: [Errno 24]
   Too many open files'.

   Someone on StackOverflow with the same problem:
   http://stackoverflow.com/questions/6669996/python-subprocess-running-out-of-file-descriptors

   Someone on StackOverflow who knows how to fix it:
   http://stackoverflow.com/a/23763193/788200

   While implementing this refactoring I had a lot of trouble making
   sure that ExternalCommand.pid and ExternalCommand.returncode would be
   preserved when the ExternalCommand.subprocess reference was destroyed
   (it seems so obvious, but nevertheless this t... (continued)

142 of 142 new or added lines in 3 files covered. (100.0%)

942 of 1013 relevant lines covered (92.99%)

4.64 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
5
100.0
executor/process.py
12
100.0
executor/__init__.py

Uncovered Existing Lines

Lines Coverage ∆ File
2
100.0
executor/concurrent.py
2
100.0
executor/__init__.py
Jobs
ID Job ID Ran Files Coverage
1 155.1 01 Jun 2016 09:23PM UTC 0
92.79
Travis Job 155.1
2 155.2 01 Jun 2016 09:22PM UTC 0
92.79
Travis Job 155.2
3 155.3 01 Jun 2016 09:22PM UTC 0
92.99
Travis Job 155.3
4 155.4 01 Jun 2016 09:22PM UTC 0
92.99
Travis Job 155.4
5 155.5 01 Jun 2016 09:23PM UTC 0
92.79
Travis Job 155.5
Source Files on build 155
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #155
  • b484912b on github
  • Prev Build on master (#154)
  • Next Build on master (#156)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc