[issue23797] Mac OS X locale setup in thread happens sometime after run() is called

2020-10-23 Thread Ronald Oussoren


Ronald Oussoren  added the comment:

I'm closing this issue as "works for me". Please re-open if there is more 
information on how to reproduce the problem.

--
resolution:  -> works for me
stage:  -> resolved
status: open -> closed
type:  -> behavior

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23797] Mac OS X locale setup in thread happens sometime after run() is called

2020-10-23 Thread Ronald Oussoren


Ronald Oussoren  added the comment:

I've been using the scriptlet below to try to attempt to reproduce the problem. 
I'm not sure if this matches the way the program of the OP is set up.

The scriptlet below works for me without problems (macOS 10.15, Python 3.4 - 
3.9).

This either means the problem has been fixed in the meantime (if it was an OS 
bug), or my script doesn't reproduce the problematic setup.

The traceback in the first message is due to LC_CTYPE=UTF-8 in the default 
shell environment on macOS, which wasn't recognised by locale.py for a long 
time. That issue has been fixed though.


# 
import locale
import threading

def thread():
print("thread locale:", locale.getlocale())

locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
#locale.getlocale()

t = threading.Thread(target=thread)
t.start()
t.join()

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23797] Mac OS X locale setup in thread happens sometime after run() is called

2015-03-29 Thread Barry Alan Scott

Barry Alan Scott added the comment:

I should point out using Python2.7 with wxPython I do not see this issue.
This issue was exposed during my efforts to port pysvn from py2.7+wxPython to 
py3.4+wxpython-phoenix.

I do setup locale on the main thread very early before starting the background 
thread.
I have attached the initLocale() I use.

The background thread needs the locale setup and I use getlocale() to prove 
that it is setup.

I do not see this as a duplicate of Issue18378 as I can init the locale. 

The problem, and I could believe its an OSX bug, is that new threads do not 
return the expected locale from _locale.setlocale() for a period of time, 
approx 2s after starting up.

--
Added file: http://bugs.python.org/file38725/initLocale.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23797] Mac OS X locale setup in thread happens sometime after run() is called

2015-03-28 Thread Ned Deily

Ned Deily added the comment:

The behavior noted in Issue18378 isn't an Apple bug; it's a GNU vs BSD 
difference.  Can you avoid the problem by calling locale.getlocale() in the 
main program before creating any threads?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23797] Mac OS X locale setup in thread happens sometime after run() is called

2015-03-28 Thread R. David Murray

R. David Murray added the comment:

This is probably related to or effectively a duplicate of issue 18378, which 
looks to be an Apple bug.

Do you have the problem if you remove the getlocale() call?

--
components: +Macintosh
nosy: +ned.deily, r.david.murray, ronaldoussoren

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23797] Mac OS X locale setup in thread happens sometime after run() is called

2015-03-28 Thread Barry Alan Scott

New submission from Barry Alan Scott:

I'm seeing a random traceback when starting a new thread on Mac OS X 10.10.2 
with python 3.4.3 final.

Exception in thread Thread-1:
Traceback (most recent call last):
  File 
"/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py", 
line 920, in _bootstrap_inner
self.run()
  File 
"/Users/barry/wc/svn/pysvn-phoenix/WorkBench/Source/wb_background_thread.py", 
line 40, in run
self.app.log.info( 'BackgroundThread locale %r' % (locale.getlocale(),) )
  File 
"/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/locale.py", 
line 575, in getlocale
return _parse_localename(localename)
  File 
"/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/locale.py", 
line 484, in _parse_localename
raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8

Adding a time.sleep( 5 ) prevents the traceback.

Using _locale.setlocale( locale.LC_ALL, None ) to see the state with locale.py 
interfering it looks like the locale is being initialised in the thread after 
run() is called. (Make no sense to me, but I can reproduce).

I have failed to create a small script to show this bug.

--
messages: 239458
nosy: barry-scott
priority: normal
severity: normal
status: open
title: Mac OS X locale setup in thread happens sometime after run() is called
versions: Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com