Commit Graph

87 Commits (f62d4f1891c3768c4dc89e4e860d5aa7035cbc33)

Author SHA1 Message Date
David Wilson f62d4f1891 Update preamble_size output. 8 years ago
David Wilson 1ed8bb6924 Document a bunch of mitogen.master and move more docstrings into Sphinx. 8 years ago
David Wilson 25adb7416a Reorder table of contents. 8 years ago
David Wilson 1de875b4aa Add serialization rules section. 8 years ago
David Wilson 491b5ab575 core: add ALLOCATE_ID message for fakessh. 8 years ago
David Wilson 18a0529887 Import unused images. 8 years ago
David Wilson 535ffc25b7 Move more docstrings out of core.py. 8 years ago
David Wilson 05a0feb2f9 core: support takes_econtext and takes_router decorators. 8 years ago
David Wilson 60dc0f6058 Typo. 8 years ago
David Wilson a1525b8bb8 Add subheading to describe each import hack. 8 years ago
David Wilson 38602d5eb3 Link to six bug. 8 years ago
David Wilson 700bfe31a4 Pad out shame.rst. 8 years ago
David Wilson db793003e0 Tidy. 8 years ago
David Wilson f60e8bc47d Add hacks to allow Mock to be imported. 8 years ago
David Wilson 1627164165 fix unbelievably dumb variable shadowing 8 years ago
David Wilson 6e3f0702a3 A few more mitogen.slave/master changes 8 years ago
David Wilson ce7a7eddb4 Mention git. 8 years ago
David Wilson 9aec5a1ccf Invert the sense of mitogen.slave 8 years ago
David Wilson 84707866b9 A few more images. 8 years ago
David Wilson 446e956e8f Rename package. 8 years ago
David Wilson 2812d9210e Add extra edge 8 years ago
David Wilson 59e7b1956b Simplify edges 8 years ago
David Wilson b52a556abd Reorder. 8 years ago
David Wilson 8d9c7245ec Tidy example. 8 years ago
David Wilson 354c96c409 Missing arc in fakessh.graphml 8 years ago
David Wilson abbcd30fa1 fakessh: add nice graphml image 8 years ago
David Wilson 1bd510601e fakessh: rename API function to match index.rst. 8 years ago
David Wilson a1044d8a6e Tidy up docs 8 years ago
David Wilson 7634b4c31c Add ProcessMonitor class 8 years ago
David Wilson de91f9ef7a Get rid of HMAC use. 8 years ago
David Wilson a11003862b Add warning to docs. 8 years ago
David Wilson acb6520ea2 Fix feature list link 8 years ago
David Wilson 8e2d691d2d Move issue lists into GitHub. 8 years ago
David Wilson e0ecfab5fc More bold, everyone loves drama 8 years ago
David Wilson d702a61589 More doc updates. 8 years ago
David Wilson 9ca39dcf72 Add Message Routing section to docs 8 years ago
David Wilson 65d5844d1a Tidy up docs. 8 years ago
David Wilson 616dc43069 fakessh: Initial working version 8 years ago
David Wilson 15d3508331 Add examples section to docs. 8 years ago
David Wilson 06d65ac6ac howitworks additions 8 years ago
David Wilson b1d0c569f6 Add TODO 8 years ago
David Wilson 6c33d251df Reduce src_id/dst_id to 16 bits. 9 years ago
David Wilson b70803a763 Update numbers. 9 years ago
David Wilson 39e70fe50c Typo. 9 years ago
David Wilson 37934f8b5a Document GET_MODULE in a slave context. 9 years ago
David Wilson 0aff1d82c6 Reads more neatly. 9 years ago
David Wilson f9df857a57 Tidy up API. 9 years ago
David Wilson 2d92455103 Update example. 9 years ago
David Wilson 0a0a060492 Introduce econtext.core.Router, refactor everything
* Header now contains (src, dst) context IDs for routing.
* econtext.context_id now contains current process' context ID.
* Now do 16kb-sized reads rather than 4kb.
* econtext package is uniformly imported in econtext/core.py in slave
  and master.
* Introduce econtext.core.Message() to centralize pickling policy, and
  various function interfaces, may rip it out again later.
* Teach slave/first stage to preserve the copy of econtext.core sent to
  it, so that it can be used for subsequent slave-of-slave bootstraps.
* Disconnect Stream from Context, and teach Context to send messages via
  Router. In this way the Context class works identically for slaves
  directly connected via a Stream, or those for whom other slaves are
  acting as proxies.
* Implement Router, which knows a list of contexts reachable via a
  Stream. Move context registry out of Broker and into Router.
* Move _invoke crap out of stream and into Context.
* Try to avoid pickling on the Broker thread wherever possible.
* Delete connection-specific fields from Context, they live on the
  associated Stream subclass now instead.
* Merge alloc_handle() and add_handle_cb() into add_handler().
* s/enqueue/send/
* Add a hacky guard to prevent send_await() deadlock from Broker thread.
* Temporarily break shutdown logic: graceful shutdown is broken since
  Broker doesn't know about which contexts exist any more.
* Handle EIO in iter_read() too. Also need to support ECONNRESET in here.
* Make iter_read() show last 100 bytes on failure.
* econtext.master.connect() is now econtext.master.Router.connect(),
  move most of the context/stream construction cutpaste into a single
  function, and Stream.construct().
* Stop using sys.executable, since it is the empty string when Python
  has been started with a custom argv[0]. Hard-wire python2.7 for now.
* Streams now have names, which are used as the default name for the
  associated Context during construction. That way Stream<->Context
  association is still fairly obviously and Stream.repr() prints
  something nice.
9 years ago
David Wilson 0c8e486891 Clarify. 9 years ago