summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Williams <rdw@lindenlab.com>2010-01-18 17:19:23 -0800
committerRyan Williams <rdw@lindenlab.com>2010-01-18 17:19:23 -0800
commit1941d1e04dcf544c0f6035c8c3dc757b07f02dda (patch)
treed158a7fd9b80394ef3afc812d2afadb57250c6bb
parentd2fa28ecdc83ed2c124743df2b3425374428542b (diff)
downloadeventlet-1941d1e04dcf544c0f6035c8c3dc757b07f02dda.tar.gz
Fixed a buncha things noticed during a code review.
-rw-r--r--NEWS13
-rw-r--r--README.twisted8
-rw-r--r--eventlet/twistedutil/protocol.py8
-rw-r--r--tests/db_pool_test.py13
4 files changed, 24 insertions, 18 deletions
diff --git a/NEWS b/NEWS
index 6fb09e6..8f19486 100644
--- a/NEWS
+++ b/NEWS
@@ -1,21 +1,24 @@
0.9.3
=====
+* tpooled gethostbyname is configurable via environment variable EVENTLET_TPOOL_GETHOSTBYNAME
+* Removed greenio.Green_fileobject and refactored the code therein to be more efficient. Only call makefile() on sockets now; makeGreenFile() is deprecated. The main loss here is that of the readuntil method. Also, Green_fileobjects used to be auto-flushing; flush() must be called explicitly now.
+* Improved documentation across the board.
* New debug module, used for enabling verbosity within Eventlet that can help debug applications or Eventlet itself.
-* Bugfixes in tpool, green.select
+* Bugfixes in tpool, green.select, patcher
* Moved primary api module to __init__ from api. It shouldn't be necessary to import eventlet.api anymore; import eventlet should do the same job.
* Proc module deprecated in favor of greenthread
* New module greenthread, with new class GreenThread.
* New GreenPool class that replaces pool.Pool.
-* Deprecated coros.execute
-* Deprecated coros.semaphore
+* Deprecated Proc module (use greenthread module instead)
+* Deprecated coros.execute (use eventlet.spawn instead)
+* Deprecated coros.semaphore (use semaphore.Semaphore or semaphore.BoundedSemaphore instead)
* Moved coros.BoundedSemaphore to semaphore.BoundedSemaphore
* Moved coros.Semaphore to semaphore.Semaphore
* Moved coros.event to event.Event
* Deprecated api.tcp_listener, api.connect_tcp, api.ssl_listener
-* Moved get_hub, use_hub, get_default_hub to eventlet.hubs
+* Moved get_hub, use_hub, get_default_hub from eventlet.api to eventlet.hubs
* Renamed libevent hub to pyevent.
-* Renamed coros.event to coros.Event
* Removed previously-deprecated features tcp_server, GreenSSL, erpc, and trap_errors.
* Removed saranwrap as an option for making db connections nonblocking in db_pool.
diff --git a/README.twisted b/README.twisted
index 9792d55..7669693 100644
--- a/README.twisted
+++ b/README.twisted
@@ -12,12 +12,14 @@ Eventlet on top of twisted provides:
* existing twisted code can be used without any changes
* existing blocking code can be used after trivial changes applied
+NOTE: the maintainer of Eventlet's Twisted support no longer supports it; it still exists but may have had some breakage along the way. Please treat it as experimental, and if you'd like to maintain it, please do!
+
Eventlet features:
* utilities for spawning and controlling greenlet execution:
api.spawn, api.kill, proc module
* utilities for communicating between greenlets:
- coros.Event, coros.Queue, proc module
+ event.Event, queue.Queue, semaphore.Semaphore
* standard Python modules that won't block the reactor:
eventlet.green package
* utilities specific to twisted hub:
@@ -61,8 +63,8 @@ to call from anywhere:
1. Greenlet creation functions: api.spawn, proc.spawn,
twistedutil.deferToGreenThread and others based on api.spawn.
-2. send(), send_exception(), poll(), ready() methods of coros.Event
- and coros.Queue.
+2. send(), send_exception(), poll(), ready() methods of event.Event
+ and queue.Queue.
3. wait(timeout=0) is identical to poll(). Currently only Proc.wait
supports timeout parameter.
diff --git a/eventlet/twistedutil/protocol.py b/eventlet/twistedutil/protocol.py
index cabe2a5..7bdd55c 100644
--- a/eventlet/twistedutil/protocol.py
+++ b/eventlet/twistedutil/protocol.py
@@ -9,7 +9,7 @@ from twisted.python import failure
from eventlet import proc
from eventlet.api import getcurrent
from eventlet.coros import Queue
-from eventlet.event import Event
+from eventlet.event import Event as BaseEvent
class ValueQueue(Queue):
@@ -37,17 +37,17 @@ class ValueQueue(Queue):
return self.items and self.items[-1][1] is not None
-class Event(Event):
+class Event(BaseEvent):
def send(self, value, exc=None):
if self.ready():
self.reset()
- return Event.send(self, value, exc)
+ return BaseEvent.send(self, value, exc)
def send_exception(self, *throw_args):
if self.ready():
self.reset()
- return Event.send_exception(self, *throw_args)
+ return BaseEvent.send_exception(self, *throw_args)
class Producer2Event(object):
diff --git a/tests/db_pool_test.py b/tests/db_pool_test.py
index a92e62b..15be9c0 100644
--- a/tests/db_pool_test.py
+++ b/tests/db_pool_test.py
@@ -2,7 +2,8 @@
from tests import skipped, skip_unless
from unittest import TestCase, main
-from eventlet import api, coros
+from eventlet import api
+from eventlet import event
from eventlet import db_pool
class DBTester(object):
@@ -146,13 +147,13 @@ class TestDBConnectionPool(DBTester):
curs = conn.cursor()
results = []
SHORT_QUERY = "select * from test_table"
- evt = coros.Event()
+ evt = event.Event()
def a_query():
self.assert_cursor_works(curs)
curs.execute(SHORT_QUERY)
results.append(2)
evt.send()
- evt2 = coros.Event()
+ evt2 = event.Event()
api.spawn(a_query)
results.append(1)
self.assertEqual([1], results)
@@ -223,13 +224,13 @@ class TestDBConnectionPool(DBTester):
LONG_QUERY = "select * from test_table"
SHORT_QUERY = "select * from test_table where row_id <= 20"
- evt = coros.Event()
+ evt = event.Event()
def long_running_query():
self.assert_cursor_works(curs)
curs.execute(LONG_QUERY)
results.append(1)
evt.send()
- evt2 = coros.Event()
+ evt2 = event.Event()
def short_running_query():
self.assert_cursor_works(curs2)
curs2.execute(SHORT_QUERY)
@@ -373,7 +374,7 @@ class TestDBConnectionPool(DBTester):
conn = self.pool.get()
self.assertEquals(self.pool.free(), 0)
self.assertEquals(self.pool.waiting(), 0)
- e = coros.Event()
+ e = event.Event()
def retrieve(pool, ev):
c = pool.get()
ev.send(c)