Commit 80269506 authored by Jason Madden's avatar Jason Madden

Merge branch 'master' of https://github.com/gevent/gevent

parents 42d87352 e3c874df
...@@ -1027,7 +1027,7 @@ os: ...@@ -1027,7 +1027,7 @@ os:
hub: hub:
- The system error is now raised immediatelly in main greenlet in all cases. - The system error is now raised immediately in main greenlet in all cases.
- Dropped support for old greenlet versions (need >= 0.3.2 now) - Dropped support for old greenlet versions (need >= 0.3.2 now)
core: core:
...@@ -1435,7 +1435,7 @@ Release 0.13.2 (Jan 28, 2011) ...@@ -1435,7 +1435,7 @@ Release 0.13.2 (Jan 28, 2011)
- Added proper implementation of :meth:`imap_unordered <gevent.pool.Group.imap_unordered>` to :class:`Pool` class. Unlike previous "dummy" implementation this one starts yielding the results as soon as they are ready. - Added proper implementation of :meth:`imap_unordered <gevent.pool.Group.imap_unordered>` to :class:`Pool` class. Unlike previous "dummy" implementation this one starts yielding the results as soon as they are ready.
- Implemented iterator protocol in :class:`Queue <gevent.queue.Queue>`. The main use case is the implementation of :meth:`Pool.imap_unordered`. - Implemented iterator protocol in :class:`Queue <gevent.queue.Queue>`. The main use case is the implementation of :meth:`Pool.imap_unordered`.
- Fixed :attr:`BaseServer.started` property: it is now set to ``True`` after :meth:`start <StreamServer.start>` until :meth:`stop <StreamServer.stop>` or :meth:`kill <StreamServer.kill>`. Previously it could become ``False`` for short period of times, because :class:`StreamServer` could stop accepting for a while in presence of errors and :attr:`StreamServer.started` was defined as "whether the server is currently accepting". - Fixed :attr:`BaseServer.started` property: it is now set to ``True`` after :meth:`start <StreamServer.start>` until :meth:`stop <StreamServer.stop>` or :meth:`kill <StreamServer.kill>`. Previously it could become ``False`` for short period of times, because :class:`StreamServer` could stop accepting for a while in presence of errors and :attr:`StreamServer.started` was defined as "whether the server is currently accepting".
- Fixed :class:`wsgi.WSGIServer` to reply with 500 error immediatelly if the application raises an error (:issue:`58`). Thanks to **Jon Aslund**. - Fixed :class:`wsgi.WSGIServer` to reply with 500 error immediately if the application raises an error (:issue:`58`). Thanks to **Jon Aslund**.
- Added :func:`monkey.patch_httplib` function which is disabled by default. - Added :func:`monkey.patch_httplib` function which is disabled by default.
- Added *httplib* parameter to :func:`monkey.patch_all` (defaults to ``False``). - Added *httplib* parameter to :func:`monkey.patch_all` (defaults to ``False``).
- Added :func:`write <core.buffer.write>` method to :class:`core.buffer`. - Added :func:`write <core.buffer.write>` method to :class:`core.buffer`.
...@@ -1457,7 +1457,7 @@ Release highlights: ...@@ -1457,7 +1457,7 @@ Release highlights:
- Fixed :mod:`gevent.wsgi` and :mod:`gevent.pywsgi` to join multiple ``Cookie`` headers (:issue:`40`). - Fixed :mod:`gevent.wsgi` and :mod:`gevent.pywsgi` to join multiple ``Cookie`` headers (:issue:`40`).
- Fixed :func:`select <gevent.select.select>` to recognize ``long`` arguments in addition to ``int``. - Fixed :func:`select <gevent.select.select>` to recognize ``long`` arguments in addition to ``int``.
- Fixed :meth:`Semaphore.acquire` to return ``False`` when timeout expires instead of raising :exc:`AssertionError` (:issue:`39`). Patch by **Erik Näslund**. - Fixed :meth:`Semaphore.acquire` to return ``False`` when timeout expires instead of raising :exc:`AssertionError` (:issue:`39`). Patch by **Erik Näslund**.
- Fixed :meth:`JoinableQueue.join` to return immediatelly if queue is already empty (:issue:`45`). Patch by **Dmitry Chechik**. - Fixed :meth:`JoinableQueue.join` to return immediately if queue is already empty (:issue:`45`). Patch by **Dmitry Chechik**.
- Deprecated :mod:`gevent.sslold` module. - Deprecated :mod:`gevent.sslold` module.
:mod:`gevent.socket` module: :mod:`gevent.socket` module:
......
...@@ -431,6 +431,6 @@ def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): ...@@ -431,6 +431,6 @@ def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None):
def sslwrap_simple(sock, keyfile=None, certfile=None): def sslwrap_simple(sock, keyfile=None, certfile=None):
"""A replacement for the old socket.ssl function. Designed """A replacement for the old socket.ssl function. Designed
for compatability with Python 2.5 and earlier. Will disappear in for compatibility with Python 2.5 and earlier. Will disappear in
Python 3.0.""" Python 3.0."""
return SSLSocket(sock, keyfile, certfile) return SSLSocket(sock, keyfile, certfile)
...@@ -357,7 +357,7 @@ class AsyncResult(_AbstractLinkable): ...@@ -357,7 +357,7 @@ class AsyncResult(_AbstractLinkable):
def get(self, block=True, timeout=None): def get(self, block=True, timeout=None):
"""Return the stored value or raise the exception. """Return the stored value or raise the exception.
If this instance already holds a value or an exception, return or raise it immediatelly. If this instance already holds a value or an exception, return or raise it immediately.
Otherwise, block until another greenlet calls :meth:`set` or :meth:`set_exception` or Otherwise, block until another greenlet calls :meth:`set` or :meth:`set_exception` or
until the optional timeout occurs. until the optional timeout occurs.
......
...@@ -692,7 +692,7 @@ class Hub(RawGreenlet): ...@@ -692,7 +692,7 @@ class Hub(RawGreenlet):
# this function must never return, as it will cause switch() in the parent greenlet # this function must never return, as it will cause switch() in the parent greenlet
# to return an unexpected value # to return an unexpected value
# It is still possible to kill this greenlet with throw. However, in that case # It is still possible to kill this greenlet with throw. However, in that case
# switching to it is no longer safe, as switch will return immediatelly # switching to it is no longer safe, as switch will return immediately
def join(self, timeout=None): def join(self, timeout=None):
"""Wait for the event loop to finish. Exits only when there are """Wait for the event loop to finish. Exits only when there are
...@@ -804,7 +804,7 @@ class Waiter(object): ...@@ -804,7 +804,7 @@ class Waiter(object):
>>> timer = get_hub().loop.timer(0.1) >>> timer = get_hub().loop.timer(0.1)
>>> timer.start(result.switch, 'hi from Waiter') >>> timer.start(result.switch, 'hi from Waiter')
>>> sleep(0.2) >>> sleep(0.2)
>>> result.get() # returns immediatelly without blocking >>> result.get() # returns immediately without blocking
'hi from Waiter' 'hi from Waiter'
.. warning:: .. warning::
......
...@@ -114,7 +114,7 @@ class TestTimers(greentest.TestCase): ...@@ -114,7 +114,7 @@ class TestTimers(greentest.TestCase):
def func(): def func():
gevent.spawn(lst.pop) gevent.spawn(lst.pop)
# exiting immediatelly, but self.lst.pop must be called # exiting immediately, but self.lst.pop must be called
gevent.spawn(func) gevent.spawn(func)
gevent.sleep(0.01) gevent.sleep(0.01)
assert lst == [], lst assert lst == [], lst
......
...@@ -10,8 +10,8 @@ loop = core.loop() ...@@ -10,8 +10,8 @@ loop = core.loop()
signal = signal(2, sys.stderr.write, 'INTERRUPT!') signal = signal(2, sys.stderr.write, 'INTERRUPT!')
print('must exit immediatelly...') print('must exit immediately...')
loop.run() # must exit immediatelly loop.run() # must exit immediately
print('...and once more...') print('...and once more...')
loop.run() # repeating does not fail loop.run() # repeating does not fail
print('..done') print('..done')
......
...@@ -364,7 +364,7 @@ class TestNoWait(TestCase): ...@@ -364,7 +364,7 @@ class TestNoWait(TestCase):
class TestJoinEmpty(TestCase): class TestJoinEmpty(TestCase):
def test_issue_45(self): def test_issue_45(self):
"""Test that join() exits immediatelly if not jobs were put into the queue""" """Test that join() exits immediately if not jobs were put into the queue"""
self.switch_expected = False self.switch_expected = False
q = queue.JoinableQueue() q = queue.JoinableQueue()
q.join() q.join()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment