On 7 Feb, 2010, at 15:30, Aahz wrote: > On Sun, Feb 07, 2010, Ronald Oussoren wrote: >> On 4 Feb, 2010, at 18:59, Aahz wrote: >>> On Thu, Feb 04, 2010, Christopher Barker wrote: >>>> >>>> Peter Hanson, on the wxPython list, seems to have identified a bug in >>>> the gestalt module, that may be a Carbon issue. It's a bit of an unusual >>>> case: it freezes up wxPython, when wx is called from other than the main >>>> thread. Robin Dunn suspects that it's a Carbon issue -- gestalt is >>>> calling Carbon, and doing so in the main thread, so you are then trying >>>> to call Carbon from more than one thread, which may be the cause of the >>>> problem. I've confirmed that if you call gestalt from the same thread as >>>> wxPython, there is no failure. >>> >>> I've already complained that mac_ver() causes a crash with >>> USING_FORK_WITHOUT_EXEC_IS_NOT_SUPPORTED_BY_FILE_MANAGER >>> but I'm pretty sure we're not using wx on Mac, just Windows (we're using >>> AppHelper). >> >> Have you filed a bug about that? Not that doing that in the >> python.org tracker would result result in a satisfying resolution: >> mac_ver calls OSX APIs that don't work in child processes created with >> fork (but without exec) and that cannot be changed. This was safe >> in 10.5 and earlier as well, 10.6 is the first version that loudly >> complains that you do something unsafe. > > Not yet, I was hoping someone else could confirm the bug before filing. > If you think I should go ahead and file it, I will.
Filing a bug would help remind me that someone ran into an issue. I won't be
able to fix the gestalt issue itself, but it is possible to work around it by
calling different APIs to fetch the required information.
> Do you know of any
> other way to get the info that gestalt provides?
That depends on what you want to know. Platform.mac_ver returns three values:
system version, release info and CPU architecture. The second one is always
('', '', '') on OSX and can be ignored.
The system version can also be read from
/System/Library/CoreServices/SystemVersion.plist
The CPU architecture can also be deduced from sys.byteorder (if that's "little"
your on i386, otherwise you're on ppc).
> Are you saying that if
> I called mac_ver() in the startup process it should work?
Calling mac_ver() in the startup process is safe. The problem only affects
child processes started using fork without exec.
Ronald
> --
> Aahz ([email protected]) <*> http://www.pythoncraft.com/
>
> import antigravity
> _______________________________________________
> Pythonmac-SIG maillist - [email protected]
> http://mail.python.org/mailman/listinfo/pythonmac-sig
> unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Pythonmac-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
