Permalink
Commits on Mar 15, 2015
  1. Merge pull request #98 from msabramo/patch-1

    dowski committed Mar 15, 2015
    README.rst: Add caniusepython3.com badge
Commits on Mar 9, 2015
Commits on Dec 5, 2014
  1. Test and fix for "infinite" WaitPool growth

    dowski committed Jan 31, 2014
    If an app coordinated actions with wait(unique_token) calls, every
    unique_token would exist in the internal WaitPool for the lifetime of
    the app.
    
    This change makes sure to clean up the tokens and related empty sets
    when then are no longer needed.
Commits on Nov 12, 2014
  1. Fix package tarball name to satisfy pypi...

    Jamie Turner committed Nov 12, 2014
  2. Readme update with prereqs.

    Jamie Turner committed Nov 12, 2014
  3. Move to github hosting for pypi.

    Jamie Turner committed Nov 12, 2014
  4. Version bump.

    Jamie Turner committed Nov 12, 2014
Commits on May 14, 2014
  1. Merge pull request #76 from dowski/os-signals

    jamwt committed May 14, 2014
    OS Signals
Commits on Jan 14, 2014
  1. Make sure to stop the PyEv watcher

    dowski committed Jan 14, 2014
    Without this, PyEv 0.9 and LibEv 4.15 were segfaulting.
Commits on Dec 20, 2013
  1. Handle fd reuse during epoll callback processing

    dowski committed Dec 20, 2013
    There is a comment to this effect, but file descriptors can get reused.
    If a read event and write event were triggered for a fd and the read
    callback unregistered the fd (because the remote closed) and then
    attempted a reconnect and the fd was reused when registerd, the write
    callback was still getting invoked in the same iteration of event
    handling. However, the callback wasn't intended for a disconnected
    socket.
    
    The bug was observed when attempting to reconnect dropped SSL
    connections in a try/except block. It was causing the event hub
    to freeze up indefinitely.
    
    The event hub now tracks an ID for file descriptors and checks that the
    ID at the start of even processing for a fd is the same after doing read
    callback handling. If the ID changes the write callback is not invoked.
Commits on Nov 21, 2013
  1. Merge branch 'tox'

    dowski committed Nov 21, 2013
  2. Merge pull request #86 from msabramo/absolute_import_dns

    dowski committed Nov 21, 2013
    Add "from __future__ import absolute_import" to diesel/protocols/DNS.py
  3. Merge pull request #82 from msabramo/setup_py_add_pyvev_dep_if_necessary

    dowski committed Nov 21, 2013
    setup.py: Add pyev to additional_requires if no select.epoll available
Commits on Sep 13, 2013
  1. Add "from __future__ import absolute_import" to diesel/protocols/DNS.py

    msabramo committed Sep 13, 2013
    so that imports from "dns" don't grab from DNS.py itself on
    case-insensitive filesystems.
  2. Add tox.ini for tox

    msabramo committed Sep 13, 2013
Commits on Jul 28, 2013
  1. Unblock the dpython command

    dowski committed Jul 28, 2013
    Previously it just used raw_input for getting input from the terminal.
    It now uses diesel's create_line_input_stream function to read from
    stdin in a non-blocking fashion.
    
    idpython still blocks. Need to figure out how to work non-blocking input
    into it.
Commits on Jul 16, 2013
  1. Fix ConnectionPool pool_max bug

    dowski committed Jul 16, 2013
    Normal ConnectionPools are able to be created at the module level,
    outside of any diesel Loop. This is a useful feature. However, if you
    specified a pool_max value when creating your ConnectionPool outside of
    a Loop, you'd get an exception.
    
    This fix changes the way the sentinel values are added to the
    remaining_conns Queue in the ConnectionPool constructor. It adds them
    without firing any diesel events.
Commits on Jul 15, 2013
  1. Resurrected an old chat example

    dowski committed Jul 15, 2013
    Updated from diesel 1.x to diesel 3.x and added a client example.
Commits on Jul 13, 2013
  1. A start on API docs

    dowski committed Jul 13, 2013
    Really shows where we are lacking docstrings (mostly everywhere!).
  2. Docstrings for the Signal class

    dowski committed Jul 13, 2013
  3. Remove unused import

    dowski committed Jul 13, 2013
Commits on Jul 12, 2013
  1. Added signal example

    dowski committed Jul 12, 2013
  2. Simplified Signal class internals

    dowski committed Jul 12, 2013
    Doesn't need its own Loop. It now simply registers its set() method to
    be called when the signal is caught by the event hub.
  3. Added higher-level Signal class

    dowski committed Jul 12, 2013
    It is an Event subclass, can be waited on using first and will catch
    signals that were fired even when the current loop isn't explicitly
    waiting on them.
  4. Better EINTR behavior for the EPollEventHub

    dowski committed Jul 12, 2013
    Anything that still existed in run_now will get run, instead of getting
    overwritten with reschedule.
Commits on Jul 11, 2013
  1. Simplify EPollEventHub signal handling

    dowski committed Jul 11, 2013
    Callbacks are scheduled in run_now, like callbacks from Timers. This
    matches the LibEvEventHub and generally properly schedules the handling
    of signals.
  2. Don't overwrite existing signal handlers

    dowski committed Jul 11, 2013
    Raise an exception if something else is already registered to handle
    this signal.
  3. Reorganize signal handling code

    dowski committed Jul 11, 2013
    A bunch of stuff that only the EPollEventHub used was on the
    AbstractEventHub. Now the LibEvEventHub doesn't have to inherit that
    stuff it doesn't need.
  4. OS signal support for the LibEv hub

    dowski committed Jul 11, 2013
    Required a bugfix to the handle_events method. Callbacks that were
    getting appended to run_now were running after those that were added to
    reschedule. That was happening because run_now was gettinged extended
    with reschedule before handling events from the hub loop.
    
    Like the EPollEventHub, we now do multiple iterations over run_now
    during handle_events. The second pass runs any that were added during
    hub loop event handling. Last of all, the callbacks that were in
    reschedule are put into run_now for the next call.