diff --git a/IPython/frontend/html/notebook/tests/test_kernelsession.py b/IPython/frontend/html/notebook/tests/test_kernelsession.py
index 3f216bb..f3ac9a5 100644
--- a/IPython/frontend/html/notebook/tests/test_kernelsession.py
+++ b/IPython/frontend/html/notebook/tests/test_kernelsession.py
@@ -31,37 +31,30 @@ class TestKernelManager(TestCase):
km.shutdown_kernel(kid)
self.assertTrue(not kid in km)
- def test_km_tcp(self):
- km = self._get_tcp_km()
- self._run_lifecycle(km)
-
- def test_km_ipc(self):
- km = self._get_ipc_km()
- self._run_lifecycle(km)
-
- def test_tcp_cinfo(self):
- km = self._get_tcp_km()
+ def _run_cinfo(self, km, transport, ip):
kid = km.start_kernel()
k = km.get_kernel(kid)
cinfo = km.get_connection_info(kid)
- self.assertEqual('tcp', cinfo['transport'])
- self.assertEqual('127.0.0.1', cinfo['ip'])
+ self.assertEqual(transport, cinfo['transport'])
+ self.assertEqual(ip, cinfo['ip'])
self.assertTrue('stdin_port' in cinfo)
self.assertTrue('iopub_port' in cinfo)
self.assertTrue('shell_port' in cinfo)
self.assertTrue('hb_port' in cinfo)
km.shutdown_kernel(kid)
+ def test_km_tcp(self):
+ km = self._get_tcp_km()
+ self._run_lifecycle(km)
+
+ def test_tcp_cinfo(self):
+ km = self._get_tcp_km()
+ self._run_cinfo(km, 'tcp', '127.0.0.1')
+
+ def test_km_ipc(self):
+ km = self._get_ipc_km()
+ self._run_lifecycle(km)
+
def test_ipc_cinfo(self):
km = self._get_ipc_km()
- kid = km.start_kernel()
- k = km.get_kernel(kid)
- cinfo = km.get_connection_info(kid)
- self.assertEqual('ipc', cinfo['transport'])
- self.assertEqual('test', cinfo['ip'])
- self.assertTrue('stdin_port' in cinfo)
- self.assertTrue('iopub_port' in cinfo)
- self.assertTrue('shell_port' in cinfo)
- self.assertTrue('hb_port' in cinfo)
- km.shutdown_kernel(kid)
-
+ self._run_cinfo(km, 'ipc', 'test')
diff --git a/IPython/zmq/kernelmanager.py b/IPython/zmq/kernelmanager.py
index 10a6ceb..6ab6e08 100644
--- a/IPython/zmq/kernelmanager.py
+++ b/IPython/zmq/kernelmanager.py
@@ -201,6 +201,7 @@ class ShellChannel(ZMQSocketChannel):
"""The thread's main activity. Call start() instead."""
self.socket = self.context.socket(zmq.DEALER)
self.socket.setsockopt(zmq.IDENTITY, self.session.bsession)
+ self.socket.linger = 0
self.socket.connect(self.address)
self.stream = zmqstream.ZMQStream(self.socket, self.ioloop)
self.stream.on_recv(self._handle_recv)