Skip to content

Implement parallelism/thread-safety #19

@bitprophet

Description

@bitprophet

Description

Fabric currently uses the simplest approach to the most common use case, but as a result is quite naive and not threadsafe, and cannot easily be run in parallel even by an outside agent.

Rework the execution model and state sharing to be thread-safe (whether by using threadlocals or something else), and if possible go further and actually implement a parallel execution mode users can choose to activate, with threading or multiprocessing or similar.


Morgan Goose has been the lead on this feature and has a in-working-shape branch in his Github fork (link goes to the multiprocessing branch, which is the one you want to use). We hope to merge this into core Fabric for 1.1.


Current TODO:

  • Anal retentive renaming, e.g. s/runs_parallel/parallel/
  • Code formatting cleanup/rearranging
  • Mechanics/behavior/implementation double-check
  • Linewise output added back in (may make sub-ticket)
  • Paramiko situation examined re: dependency on 1.7.7.1+ and thus PyCrypto 2.1+
    • Including documenting the change in the install docs if necessary
  • Pull in anything useful that Morgan hadn't pushed at time of my merge
  • (if not included in previous) Examine logging support and decide if it's worth bumping to next release
  • Test, test, test

Originally submitted by Jeff Forcier (bitprophet) on 2009-07-21 at 02:52pm EDT

Attachments

Relations

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions