(signal, frame)
| 45 | print "\n".join(code) |
| 46 | |
| 47 | def signal_handler(signal, frame): |
| 48 | logger.error("Got signal %i in %s/%s", signal, current_process().name, current_thread().name) |
| 49 | if current_process().name == "RegExParser": |
| 50 | # on Windows this isn't triggered, but it's fine, it has its own process termination thing |
| 51 | raise SystemExit |
| 52 | if "PoolWorker" in current_process().name: |
| 53 | raise SystemExit |
| 54 | if current_thread().name not in ("PyBitmessage", "MainThread"): |
| 55 | return |
| 56 | logger.error("Got signal %i", signal) |
| 57 | if shared.thisapp.daemon: |
| 58 | shutdown.doCleanShutdown() |
| 59 | else: |
| 60 | allThreadTraceback(frame) |
| 61 | print 'Unfortunately you cannot use Ctrl+C when running the UI because the UI captures the signal.' |
| 62 | |
| 63 | def isHostInPrivateIPRange(host): |
| 64 | if ":" in host: #IPv6 |
nothing calls this directly
no test coverage detected