Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b3b4dbe

Browse files
committed
Cleanup test_thread. CDB (Concurrent Database) support in BerkeleyDB is only
intended to have one writer and multiple readers so only run one.
1 parent 89d996e commit b3b4dbe

1 file changed

Lines changed: 26 additions & 28 deletions

File tree

Lib/bsddb/test/test_thread.py

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,19 @@ def writerThread(self, *args, **kwargs):
8181
except db.DBLockDeadlockError:
8282
if verbose:
8383
print(currentThread().getName(), 'died from', e)
84+
else:
85+
if verbose:
86+
print(currentThread().getName(), "finished.")
8487

8588
def readerThread(self, *args, **kwargs):
8689
try:
8790
self._readerThread(*args, **kwargs)
8891
except db.DBLockDeadlockError as e:
8992
if verbose:
9093
print(currentThread().getName(), 'died from', e)
91-
94+
else:
95+
if verbose:
96+
print(currentThread().getName(), "finished.")
9297

9398

9499

@@ -107,14 +112,14 @@ def test01_1WriterMultiReaders(self):
107112
print('\n', '-=' * 30)
108113
print("Running %s.test01_1WriterMultiReaders..." % \
109114
self.__class__.__name__)
115+
print('Using:', self.homeDir, self.filename)
110116

111117
threads = []
112-
for x in range(self.writers):
113-
wt = Thread(target = self.writerThread,
114-
args = (self.d, self.records, x),
115-
name = 'writer %d' % x,
116-
)#verbose = verbose)
117-
threads.append(wt)
118+
wt = Thread(target = self.writerThread,
119+
args = (self.d, self.records),
120+
name = 'the writer',
121+
)#verbose = verbose)
122+
threads.append(wt)
118123

119124
for x in range(self.readers):
120125
rt = Thread(target = self.readerThread,
@@ -128,20 +133,18 @@ def test01_1WriterMultiReaders(self):
128133
for t in threads:
129134
t.join()
130135

131-
def _writerThread(self, d, howMany, writerNum):
132-
#time.sleep(0.01 * writerNum + 0.01)
136+
def _writerThread(self, d, howMany):
133137
name = currentThread().getName()
134-
start = howMany * writerNum
135-
stop = howMany * (writerNum + 1) - 1
138+
start = 0
139+
stop = howMany
136140
if verbose:
137-
print("%s: creating records %d - %d" % (name, start, stop))
141+
print(name+": creating records", start, "-", stop)
138142

139143
for x in range(start, stop):
140144
key = ('%04d' % x).encode("ascii")
141-
dbutils.DeadlockWrap(d.put, key, self.makeData(key),
142-
max_retries=20)
143-
if verbose and x % 100 == 0:
144-
print("%s: records %d - %d finished" % (name, start, x))
145+
d.put(key, self.makeData(key))
146+
if verbose and x > start and x % 50 == 0:
147+
print(name+": records", start, "-", x, "finished")
145148

146149
if verbose:
147150
print("%s: finished creating records" % name)
@@ -157,8 +160,6 @@ def _writerThread(self, d, howMany, writerNum):
157160
## c.delete()
158161

159162
## c.close()
160-
if verbose:
161-
print("%s: thread finished" % name)
162163

163164
def _readerThread(self, d, readerNum):
164165
time.sleep(0.01 * readerNum)
@@ -174,25 +175,22 @@ def _readerThread(self, d, readerNum):
174175
self.assertEqual(self.makeData(key), data)
175176
rec = c.next()
176177
if verbose:
177-
print("%s: found %d records" % (name, count))
178+
print(name+": found", count, "records")
178179
c.close()
179180
time.sleep(0.05)
180181

181-
if verbose:
182-
print("%s: thread finished" % name)
183-
184182

185183
class BTreeConcurrentDataStore(ConcurrentDataStoreBase):
186184
dbtype = db.DB_BTREE
187-
writers = 2
185+
writers = 1
188186
readers = 10
189187
records = 1000
190188

191189

192190
class HashConcurrentDataStore(ConcurrentDataStoreBase):
193191
dbtype = db.DB_HASH
194-
writers = 2
195-
readers = 10
192+
writers = 1
193+
readers = 0
196194
records = 1000
197195

198196

@@ -373,7 +371,7 @@ def doWrite(self, d, name, start, stop):
373371
finished = True
374372
except (db.DBLockDeadlockError, db.DBLockNotGrantedError) as val:
375373
if verbose:
376-
print("%s: Aborting transaction (%s)" % (name, val[1]))
374+
print("%s: Aborting transaction (%s)" % (name, val))
377375
txn.abort()
378376
time.sleep(0.05)
379377

@@ -411,7 +409,7 @@ def _writerThread(self, d, howMany, writerNum):
411409
print("%s: deleted records %s" % (name, recs))
412410
except (db.DBLockDeadlockError, db.DBLockNotGrantedError) as val:
413411
if verbose:
414-
print("%s: Aborting transaction (%s)" % (name, val[1]))
412+
print("%s: Aborting transaction (%s)" % (name, val))
415413
txn.abort()
416414
time.sleep(0.05)
417415

@@ -441,7 +439,7 @@ def _readerThread(self, d, readerNum):
441439
finished = True
442440
except (db.DBLockDeadlockError, db.DBLockNotGrantedError) as val:
443441
if verbose:
444-
print("%s: Aborting transaction (%s)" % (name, val[1]))
442+
print("%s: Aborting transaction (%s)" % (name, val))
445443
c.close()
446444
txn.abort()
447445
time.sleep(0.05)

0 commit comments

Comments
 (0)