import sys
import threading
import pifacedigitalio
exit_barrier = threading.Barrier(2)
def deactivate_listener_and_exit(event):
global exit_barrier
exit_barrier.wait()
pifacedigital = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.InputEventListener(chip=pifacedigital)
listener.register(0,
pifacedigitalio.IODIR_FALLING_EDGE,
deactivate_listener_and_exit)
listener.activate()
exit_barrier.wait() # program will wait here until exit_barrier releases
listener.deactivate()
sys.exit()