Show More
@@ -1,3 +1,8 b'' | |||
|
1 | 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu> | |
|
2 | ||
|
3 | * ipython.1: update man page and full manual with information | |
|
4 | about threads (remove outdated warning). Closes #151. | |
|
5 | ||
|
1 | 6 | 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu> |
|
2 | 7 | |
|
3 | 8 | * IPython/Extensions/ipy_constants.py: Add Gael's constants module |
@@ -88,21 +88,6 b' There is unfortunately no way for IPython to determine at runtime whether \\-tk' | |||
|
88 | 88 | will work reliably or not, so you will need to do some experiments before |
|
89 | 89 | relying on it for regular work. |
|
90 | 90 | . |
|
91 | .SS A WARNING ABOUT SIGNALS AND THREADS | |
|
92 | When any of the thread systems (GTK, QT or WX) are active, either directly or | |
|
93 | via \-pylab with a threaded backend, it is impossible to interrupt | |
|
94 | long-running Python code via Ctrl\-C. IPython can not pass the | |
|
95 | KeyboardInterrupt exception (or the underlying SIGINT) across threads, so any | |
|
96 | long-running process started from IPython will run to completion, or will have | |
|
97 | to be killed via an external (OS-based) mechanism. | |
|
98 | .br | |
|
99 | .sp 1 | |
|
100 | To the best of my knowledge, this limitation is imposed by the Python | |
|
101 | interpreter itself, and it comes from the difficulty of writing portable | |
|
102 | signal/threaded code. If any user is an expert on this topic and can suggest | |
|
103 | a better solution, I would love to hear about it. In the IPython sources, | |
|
104 | look at the Shell.py module, and in particular at the runcode() method. | |
|
105 | . | |
|
106 | 91 | .SH REGULAR OPTIONS |
|
107 | 92 | After the above threading options have been given, regular options can follow |
|
108 | 93 | in any order. All options can be abbreviated to their shortest non-ambiguous |
@@ -8773,6 +8773,10 b' IPython, via the' | |||
|
8773 | 8773 | \family typewriter |
|
8774 | 8774 | -qthread |
|
8775 | 8775 | \family default |
|
8776 | , | |
|
8777 | \family typewriter | |
|
8778 | -q4thread | |
|
8779 | \family default | |
|
8776 | 8780 | and |
|
8777 | 8781 | \family typewriter |
|
8778 | 8782 | -wthread |
@@ -8783,11 +8787,11 b' IPython, via the' | |||
|
8783 | 8787 | |
|
8784 | 8788 | \end_inset |
|
8785 | 8789 | |
|
8786 |
), can run in multithreaded mode to support pyGTK, Qt and WXPython |
|
|
8787 | respectively. | |
|
8790 | ), can run in multithreaded mode to support pyGTK, Qt3, Qt4 and WXPython | |
|
8791 | applications respectively. | |
|
8788 | 8792 | These GUI toolkits need to control the python main loop of execution, so |
|
8789 |
under a normal Python interpreter, starting a pyGTK, Qt or WXPyth |
|
|
8790 | will immediately freeze the shell. | |
|
8793 | under a normal Python interpreter, starting a pyGTK, Qt3, Qt4 or WXPython | |
|
8794 | application will immediately freeze the shell. | |
|
8791 | 8795 | |
|
8792 | 8796 | \end_layout |
|
8793 | 8797 | |
@@ -8835,50 +8839,6 b' As indicated in Sec.\\InsetSpace ~' | |||
|
8835 | 8839 | \end_layout |
|
8836 | 8840 | |
|
8837 | 8841 | \begin_layout Subsection |
|
8838 | Signals and Threads | |
|
8839 | \end_layout | |
|
8840 | ||
|
8841 | \begin_layout Standard | |
|
8842 | When any of the thread systems (GTK, Qt or WX) are active, either directly | |
|
8843 | or via | |
|
8844 | \family typewriter | |
|
8845 | -pylab | |
|
8846 | \family default | |
|
8847 | with a threaded backend, it is impossible to interrupt long-running Python | |
|
8848 | code via | |
|
8849 | \family typewriter | |
|
8850 | Ctrl-C | |
|
8851 | \family default | |
|
8852 | . | |
|
8853 | IPython can not pass the KeyboardInterrupt exception (or the underlying | |
|
8854 | ||
|
8855 | \family typewriter | |
|
8856 | SIGINT | |
|
8857 | \family default | |
|
8858 | ) across threads, so any long-running process started from IPython will | |
|
8859 | run to completion, or will have to be killed via an external (OS-based) | |
|
8860 | mechanism. | |
|
8861 | \end_layout | |
|
8862 | ||
|
8863 | \begin_layout Standard | |
|
8864 | To the best of my knowledge, this limitation is imposed by the Python interprete | |
|
8865 | r itself, and it comes from the difficulty of writing portable signal/threaded | |
|
8866 | code. | |
|
8867 | If any user is an expert on this topic and can suggest a better solution, | |
|
8868 | I would love to hear about it. | |
|
8869 | In the IPython sources, look at the | |
|
8870 | \family typewriter | |
|
8871 | Shell.py | |
|
8872 | \family default | |
|
8873 | module, and in particular at the | |
|
8874 | \family typewriter | |
|
8875 | runcode() | |
|
8876 | \family default | |
|
8877 | method. | |
|
8878 | ||
|
8879 | \end_layout | |
|
8880 | ||
|
8881 | \begin_layout Subsection | |
|
8882 | 8842 | I/O pitfalls |
|
8883 | 8843 | \end_layout |
|
8884 | 8844 |
General Comments 0
You need to be logged in to leave comments.
Login now