dpetican

Cleanup zmq

Jun 11th, 2016
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.90 KB | None | 0 0
  1. #Respond with final error message if any, close sockets, and terminate context
  2. def clean_up(manager_name, exit_level, error_message):
  3.     global context, frontend, backend
  4.     print ("%s: closing sockets.... then exiting" % manager_name)
  5.     if (error_message != ""):
  6.         data = "%s" % str(error_message)
  7.         frontend.send_multipart([b"error", data.encode()])
  8.  
  9.     #Todo: maybe wrap this in a try/except
  10.     frontend.close()
  11.     backend.close()
  12.     context.term()
  13.  
  14.     sys.exit(exit_level)
  15.  
  16. #Signal handler
  17. def receive_signal(signum, stack):
  18.     #Todo: mask interrupts
  19.     print ("Interrupt Handler: received interrupt")
  20.     #Do not send an error messaage because we are exiting abnormally
  21.     clean_up("Interrupt Handler", 1, "")
  22.  
  23. #Register signal handler with signals
  24. def register_signals():
  25.     signal.signal(signal.SIGINT, receive_signal)
  26.     signal.signal(signal.SIGTERM, receive_signal)
  27.     signal.signal(signal.SIGHUP, receive_signal)
Advertisement
Add Comment
Please, Sign In to add comment