diff options
author | Davies Liu <davies@databricks.com> | 2015-11-10 22:46:17 -0800 |
---|---|---|
committer | Davies Liu <davies.liu@gmail.com> | 2015-11-10 22:46:17 -0800 |
commit | bd70244b3cda62cc447fd4cc343d4eb5ddaec893 (patch) | |
tree | c45425671384a04cd1a348df3ec19e183335cdc2 /python | |
parent | 1a8e0468a1c07e99ad395eb0e4dc072c5cf7393a (diff) | |
download | spark-bd70244b3cda62cc447fd4cc343d4eb5ddaec893.tar.gz spark-bd70244b3cda62cc447fd4cc343d4eb5ddaec893.tar.bz2 spark-bd70244b3cda62cc447fd4cc343d4eb5ddaec893.zip |
[SPARK-11463] [PYSPARK] only install signal in main thread
Only install signal in main thread, or it will fail to create context in not-main thread.
Author: Davies Liu <davies@databricks.com>
Closes #9574 from davies/python_signal.
Diffstat (limited to 'python')
-rw-r--r-- | python/pyspark/context.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/python/pyspark/context.py b/python/pyspark/context.py index afd74d937a..77710a1339 100644 --- a/python/pyspark/context.py +++ b/python/pyspark/context.py @@ -21,6 +21,7 @@ import os import shutil import signal import sys +import threading from threading import RLock from tempfile import NamedTemporaryFile @@ -222,7 +223,9 @@ class SparkContext(object): def signal_handler(signal, frame): self.cancelAllJobs() - signal.signal(signal.SIGINT, signal_handler) + # see http://stackoverflow.com/questions/23206787/ + if isinstance(threading.current_thread(), threading._MainThread): + signal.signal(signal.SIGINT, signal_handler) def _initialize_context(self, jconf): """ |