From: <cg...@us...> - 2009-01-04 05:48:11
|
Revision: 5838 http://jython.svn.sourceforge.net/jython/?rev=5838&view=rev Author: cgroves Date: 2009-01-04 05:48:09 +0000 (Sun, 04 Jan 2009) Log Message: ----------- Huh, synchronize.make_synchronized synchronizes on the instance called, not the method itself, so switch to using a single Runnable instance to synchronize across. Modified Paths: -------------- trunk/jython/Lib/test/test_thread_jy.py Modified: trunk/jython/Lib/test/test_thread_jy.py =================================================================== --- trunk/jython/Lib/test/test_thread_jy.py 2009-01-04 05:42:44 UTC (rev 5837) +++ trunk/jython/Lib/test/test_thread_jy.py 2009-01-04 05:48:09 UTC (rev 5838) @@ -2,7 +2,7 @@ import synchronize import unittest import test.test_support -from java.lang import Thread +from java.lang import Runnable, Thread from java.util.concurrent import CountDownLatch class AllocateLockTest(unittest.TestCase): @@ -15,17 +15,18 @@ class SynchronizeTest(unittest.TestCase): def test_make_synchronized(self): - self.doneSignal = CountDownLatch(10) - self.i = 0 - class SynchedRun(Thread): - def run(synchself): - self.i = self.i + 1 - self.doneSignal.countDown() + doneSignal = CountDownLatch(10) + class SynchedRunnable(Runnable): + i = 0 + def run(self): + self.i += 1 + doneSignal.countDown() run = synchronize.make_synchronized(run) + runner = SynchedRunnable() for _ in xrange(10): - SynchedRun().start() - self.doneSignal.await() - self.assertEquals(10, self.i) + Thread(runner).start() + doneSignal.await() + self.assertEquals(10, runner.i) def test_main(): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |