I’m having a problem in using the precompiled binaries of ROOT ver.5.34/21 for windoze via PyROOT; it does NOT open TCanvas() nor TBrowser(), with no response. Others e.g. TFile() work.
It occurs on:
[ul]Vista business (SP2, 32bit) + Python(x,y) 2.7.6.1
7 Home Premium (SP1, 64bit) + Python(x,y) 2.7.6.1
8.1 (64bit) + Python 2.7.8 from http://www.python.org
[/ul]
It does NOT occur, however, with older .msi binaries (ver.5.34/20 and earlier) on all the three windoze versions.
Learning from another post titled [url=https://root-forum.cern.ch/t/python-hangs-on-creating-canvas-but-works-in-root-terminal/18195/1 hangs on creating canvas (but works in root terminal)[/url], by putting the following lines at the top of a script, the script works (successfully creating a TCanvas and doing TCanvas.Print(“file.ps”) several times) w/ the 5.34/21 binary (vc10, w/o debug):
From a Python shell, even with the lines above, the created TCanvas and TBrowser do NOT respond, althought this time the prompt returns after creating each of them.
there have been a boat load of changes to make ROOT more thread-safe, some of which have resulted in dead-locks. This affected /20, though, not /21.
I have no idea what else could have changed, nor any way of reproducing on Windows (I have no such machine anymore).
Do you need the prompt? If no, you can combine the inputhook option with a loop on the main thread that calls gSystem.ProcessEvents() occasionally (the ticket being that these calls then originate from the same thread that created the TCanvas and TBrowser, pre-empting locking issues).