blob: aa4343507c7ab7ac1fe387d61f230bf1d2b1ea2d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
0.4.0
=====
- reworked Dogpile's API into a new object called Lock.
Lock presents just one set of arguments for locking within
one constructor call, and provides the "comprehensive" caching
pattern that is what's desired in the vast majority of cases.
The Dogpile class is now legacy, and
builds its various usage patterns on top of Lock.
- Fixed the dependency on storing "creationtime" locally in memory;
this caused dogpile pileups for a missing cache value when used in multiple-process
environments. The new Lock object now checks the value_and_created_fn()
an extra time within the "lock acquired" phase so that multiple writers
who entered the block don't rely upon a memory-only version of creation
time. #1
0.3.3
=====
- repair setup.py so that tests don't install,
courtesy Ben Hayden.
0.3.2
=====
- upgrade to beta.
0.3.1
=====
- py3k compatibility is in-place now, no
2to3 needed.
0.3.0
=====
- Renamed the project again - to dogpile.core.
Package has been reorganized so that "dogpile"
is a pure namespace package. The base dogpile
features are now in "dogpile.core".
0.2.2
=====
- expire time of None means "never expire".
0.2.1
=====
- Add new "nameregistry" helper. Another fixture
derived from Beaker, this allows the ad-hoc creation of
a new Dogpile lock based on a name, where all other
threads calling that name at the same time will get
the same Dogpile lock. Allows any number of
logical "dogpile" actions to carry on concurrently
without any memory taken up outside of those operations.
- To support the use case supported by nameregistry, added
value_and_created_fn to dogpile.acquire(). The idea
is that the value_and_created_fn can return
(value, createdtime), so that the creation time of the
value can come from the cache, thus eliminating the
need for the dogpile lock to hang around persistently.
0.2.0
=====
- change name to lowercase "dogpile".
0.1.0
=====
- initial revision.
|