Message91807
# 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. |
|
Date |
User |
Action |
Args |
2009-08-21 07:28:29 | nullnil | set | recipients:
+ nullnil |
2009-08-21 07:28:29 | nullnil | set | messageid: <1250839709.71.0.595068140402.issue6750@psf.upfronthosting.co.za> |
2009-08-21 07:28:27 | nullnil | link | issue6750 messages |
2009-08-21 07:28:26 | nullnil | create | |
|