Changes the strategy so that after a message has been put on the wait queue, it is then checked to see if it became the next message during this time and if so, immediately flushed. Will hopefully fix#451.
* Fix for session shenanigans with WebsocketDemultiplexer
Session data was getting lost in the demux due to the session getting
saved after only the first connect/disconnect consumer was run.
* fix for flake8
* flake8 again
flake8 again
* Update channel_session decorator to rehydrate http_session
Update the http_session decorator to write the http session key
to the channel_session when available. This allows the channel_session
decorator to rehydrate the http_session after the initial websocket
connection.
closes#318
* Add persist=True option to http_session
* Add explicit option to store the session key in the channel session
* Update docs
* Add test case
* Add channel_and_http_session decorator
This decorator enables both sessions and maintains
the http_session for the lifetime of the websocket connection.
* improved @enforce_ordering to leverage a wait channel to avoid spinlocks
* addressed pyflake issues
* renamed wait channel to __wait__.<reply channel>
* handled potential ChannelFull exception
* updated sessions unit tests
* updated enforce_ordering tests to reflect new approach of leveraging wait channels
* addressed pyflake issues
* more pyflake fixes
* removed close_on_error handling on enforce_ordering since only worked on websockets