Changeset 2335

Show
Ignore:
Timestamp:
05/10/07 01:20:19 (2 years ago)
Author:
fperez
Message:

Documentation fixes. Closes #151

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ipython/trunk/doc/ChangeLog

    r2334 r2335  
     12007-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 
    162007-05-09  Fernando Perez  <Fernando.Perez@colorado.edu> 
    27 
  • ipython/trunk/doc/ipython.1

    r2152 r2335  
    8989relying on it for regular work. 
    9090. 
    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 . 
    10691.SH REGULAR OPTIONS 
    10792After the above threading options have been given, regular options can follow 
  • ipython/trunk/doc/manual_base.lyx

    r2233 r2335  
    87748774-qthread 
    87758775\family default 
     8776,  
     8777\family typewriter 
     8778-q4thread 
     8779\family default 
    87768780 and  
    87778781\family typewriter 
     
    87848788\end_inset 
    87858789 
    8786 ), can run in multithreaded mode to support pyGTK, Qt and WXPython applications 
    8787  respectively. 
     8790), can run in multithreaded mode to support pyGTK, Qt3, Qt4 and WXPython 
     8791 applications respectively. 
    87888792 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 
    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. 
    87918795  
    87928796\end_layout 
     
    88338837 Please experiment with simple test cases before committing to using this 
    88348838 combination of Tk and GTK/Qt/WX threading in a production environment. 
    8835 \end_layout 
    8836  
    8837 \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   
    88798839\end_layout 
    88808840