Commit 3a1dfa21 authored by Benjamin Peterson's avatar Benjamin Peterson

remove a optimization that resulted in unexpected behavior #8929

parent 22c62dd3
...@@ -21,6 +21,13 @@ class SelectTestCase(unittest.TestCase): ...@@ -21,6 +21,13 @@ class SelectTestCase(unittest.TestCase):
self.assertRaises(TypeError, select.select, [self.Almost()], [], []) self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
self.assertRaises(TypeError, select.select, [], [], [], "not a number") self.assertRaises(TypeError, select.select, [], [], [], "not a number")
def test_returned_list_identity(self):
# See issue #8329
r, w, x = select.select([], [], [], 1)
self.assertIsNot(r, w)
self.assertIsNot(r, x)
self.assertIsNot(w, x)
def test_select(self): def test_select(self):
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
p = os.popen(cmd, 'r') p = os.popen(cmd, 'r')
......
...@@ -12,6 +12,9 @@ What's New in Python 2.7 beta 1? ...@@ -12,6 +12,9 @@ What's New in Python 2.7 beta 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #8329: Don't return the same lists from select.select when no fds are
changed.
- Issue #8259: 1L << (2**31) no longer produces an 'outrageous shift error' - Issue #8259: 1L << (2**31) no longer produces an 'outrageous shift error'
on 64-bit machines. The shift count for either left or right shift is on 64-bit machines. The shift count for either left or right shift is
permitted to be up to sys.maxsize. permitted to be up to sys.maxsize.
......
...@@ -287,14 +287,6 @@ select_select(PyObject *self, PyObject *args) ...@@ -287,14 +287,6 @@ select_select(PyObject *self, PyObject *args)
PyErr_SetFromErrno(SelectError); PyErr_SetFromErrno(SelectError);
} }
#endif #endif
else if (n == 0) {
/* optimization */
ifdlist = PyList_New(0);
if (ifdlist) {
ret = PyTuple_Pack(3, ifdlist, ifdlist, ifdlist);
Py_DECREF(ifdlist);
}
}
else { else {
/* any of these three calls can raise an exception. it's more /* any of these three calls can raise an exception. it's more
convenient to test for this after all three calls... but convenient to test for this after all three calls... but
......
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