• Jeremy Hylton's avatar
    Merge in zeo-1_0-branch · 52b8c629
    Jeremy Hylton authored
    Fixed a bug in building undo invalidation info that caused client
    storages to raise an exception that caused connections to be reset
    and that, for some of reason, caused undo's to not propigate to
    the clients.
    
    Avoid long delays at the end of a pack.
    
        When a client calls pack, a separate thread is started to call the
        pack call on the storage.  When the thread finishes, it calls
        message_output() to send a response to the client.  If asyncore is
        currently in a poll call when this happens, the output won't be
        detected until the next poll call.  If there is little I/O on the
        connection, this won't happen until the select call times out
        after 30 seconds.
    
        The trigger is the standard gimmick for one thread to notify a
        mainloop in another thread that the first thread has some I/O to
        do.  It exits the current select.  The next poll call detects that
        the triggering thread is ready to do I/O and handles it.
    
    Use asyncwrap to call asyncore.loop() and asyncore.poll()
    52b8c629
StorageServer.py 19.9 KB