##// END OF EJS Templates
Documentation fixes. Closes #151
fperez -
Show More
@@ -1,3 +1,8
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 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
6 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
2
7
3 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
8 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
@@ -88,21 +88,6 There is unfortunately no way for IPython to determine at runtime whether \-tk
88 will work reliably or not, so you will need to do some experiments before
88 will work reliably or not, so you will need to do some experiments before
89 relying on it for regular work.
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 .SH REGULAR OPTIONS
91 .SH REGULAR OPTIONS
107 After the above threading options have been given, regular options can follow
92 After the above threading options have been given, regular options can follow
108 in any order. All options can be abbreviated to their shortest non-ambiguous
93 in any order. All options can be abbreviated to their shortest non-ambiguous
@@ -8773,6 +8773,10 IPython, via the
8773 \family typewriter
8773 \family typewriter
8774 -qthread
8774 -qthread
8775 \family default
8775 \family default
8776 ,
8777 \family typewriter
8778 -q4thread
8779 \family default
8776 and
8780 and
8777 \family typewriter
8781 \family typewriter
8778 -wthread
8782 -wthread
@@ -8783,11 +8787,11 IPython, via the
8783
8787
8784 \end_inset
8788 \end_inset
8785
8789
8786 ), can run in multithreaded mode to support pyGTK, Qt and WXPython applications
8790 ), can run in multithreaded mode to support pyGTK, Qt3, Qt4 and WXPython
8787 respectively.
8791 applications respectively.
8788 These GUI toolkits need to control the python main loop of execution, so
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 WXPython application
8793 under a normal Python interpreter, starting a pyGTK, Qt3, Qt4 or WXPython
8790 will immediately freeze the shell.
8794 application will immediately freeze the shell.
8791
8795
8792 \end_layout
8796 \end_layout
8793
8797
@@ -8835,50 +8839,6 As indicated in Sec.\InsetSpace ~
8835 \end_layout
8839 \end_layout
8836
8840
8837 \begin_layout Subsection
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 I/O pitfalls
8842 I/O pitfalls
8883 \end_layout
8843 \end_layout
8884
8844
General Comments 0
You need to be logged in to leave comments. Login now