Precompiled win. binaries of 5.34/21 don't open TCanvas etc

Hi root experts…

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.

Any suggestions?

Thanks in advance.

Kazuyoshi




An update.

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):

import ROOT ROOT.PyConfig.StartGuiThread = 'inputhook'

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.

Kazuyoshi

Kazuyoshi,

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).

Sorry,
Wim