[New-bugs-announce] [issue6750] threading issue in __builtins__.print
Jackson Yang
report at bugs.python.org
Fri Aug 21 09:28:29 CEST 2009
New submission from Jackson Yang <jackson.yang at augmentum.com>:
# Bug Description
In a multi-threaded environment, the Win32 Python3000 built-in function
"print" may give the output several times.
# How to Reproduce:
import threading
event = threading.Event()
class Test(threading.Thread):
def __init__(self, ord):
super().__init__()
self.ord = ord
def run(self):
event.wait()
print('Hello, world!', self.ord)
threads = tuple(map(Test, range(8)))
tuple(map(lambda thread: thread.start(), threads))
event.set()
tuple(map(lambda thread: thread.join(), threads))
# EOF
# Problem Observed
[The first run, 0 is doubled]
Hello, world! 0
Hello, world! 0
Hello, world! 1
Hello, world! 2
Hello, world! 3
Hello, world! 4
Hello, world! 5
Hello, world! 6
Hello, world! 7
[the second run, 1 and 7 are doubled]
Hello, world! 1
Hello, world! 1
Hello, world! 2
Hello, world! 3
Hello, world! 4
Hello, world! 5
Hello, world! 6
Hello, world! 7
Hello, world! 7
Hello, world! 0
# Expected Result
Each thread gives ONE AND ONLY ONE output.
OR
State this as The Expected Behavior, document it and ask the user to
write something such as critical section.
----------
components: IO
messages: 91807
nosy: nullnil
severity: normal
status: open
title: threading issue in __builtins__.print
type: behavior
versions: Python 3.1
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue6750>
_______________________________________
More information about the New-bugs-announce
mailing list