#!/usr/bin/env python # coding: utf-8 # Holding the GIL for too long could disrupt the heartbeat due to non-copying sends. # # The following cell repeatedly calls a function that holds the GIL for five seconds. # # The heartbeat will fail after a few iterations prior to fixing Issue [#1260](https://github.com/ipython/ipython/issues/1260). # In[1]: import sys import time from cython import inline def gilsleep(t): """gil-holding sleep with cython.inline""" code = '\n'.join([ 'from posix cimport unistd', 'unistd.sleep(t)', ]) while True: inline(code, quiet=True, t=t) print time.time() sys.stdout.flush() # this is important gilsleep(5) # In[ ]: