-
Notifications
You must be signed in to change notification settings - Fork 56
/
NEWS
123 lines (88 loc) · 4.52 KB
/
NEWS
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
The SUAsync Library - User visible changes.
* Version 1.4.1 (2015-05-20) [???????]
Noteworthy changes:
- Fixed a deadlock when joining a Deferred with a timeout (#4).
* Version 1.4.0 (2013-08-01) [fe17b98]
New public APIs:
- `groupInOrder(Collection)' was added to provide an alternative to
`group(...)' that preserves the order of the results.
* Version 1.3.3 (2013-06-16) [fc509ea]
Noteworthy changes:
- Fixed the signature of the group() methods so as to preserve the
type T of the Deferreds being grouped, instead of forcing them
to be just Object. This is a compatible API change.
* Version 1.3.2 (2013-05-30) [bf284c8]
Noteworthy changes:
- Fixed a race condition in Deferred.toString() that could cause
a NullPointerException.
* Version 1.3.1 (2012-11-03) [aab6920]
Noteworthy changes:
- Restore the limit on the size of the callback chain to 16383.
* Version 1.3.0 (2012-10-28) [05c513b]
Noteworthy changes:
- Fix the maximum number of callbacks and the check enforcing it.
The maximum number is now 8192 (down from 16383) and an exception
is properly raised when the limit is reached.
- When the limit on the number of callbacks is hit, an exception
of type `CallbackOverflowError' is now raised instead of a
`StackOverflowError'. Because `CallbackOverflowError' inherits
from `StackOverflowError', this change is backward compatible.
* Version 1.2.0 (2012-04-08) [640e4e3]
Noteworthy changes:
- Optimization: the internal state of a Deferred is now captured
in a plain `int' instead of using an enum.
- The maximum number of callbacks allowed on a Deferred has been
significantly increased, from 128 to 16383, to allow for some
use cases where a large number of operations are waiting on a
single asynchronous operation to complete. This implementation
cannot support more than this many callbacks without refactoring.
* Version 1.1.0 (2011-09-27) [cf62d8d]
New public APIs:
- The `join()' and `joinUninterruptibly()' methods now have an
overloaded version that accepts a timeout in milliseconds and
throws the new `TimeoutException' when a timed join times out.
Noteworthy changes:
- Callback chains are now stored in an array internally, instead of 2
LinkedLists, which dramatically reduces memory usage and the number
of objects created for each callback.
* Version 1.0 (2010-10-26) [80c1235]
Noteworthy changes:
- `MAX_CALLBACK_CHAIN_LENGTH' was increased from 64 to 127.
- Switch from LGPLv3+ to BSD license.
- Fix `join()' and `joinUninterruptibly()' to be safe with multiple
waiting threads.
- Fix a race condition when adding a callback right before the end
of the execution of the current callback chain.
- Optimization: invoke callbacks immediately when added to a Deferred
already in `State.DONE'.
New public APIs:
- `Deferred.group()' and `DeferredGroupException' were added.
* Version 0.1 (2010-08-26) [d955ddb]
Initial release:
- Deferred with Callback, inspired from Twisted's defer.py.
-----
Copyright (c) 2010-2012 The SUAsync Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of the StumbleUpon nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Local Variables:
mode: outline
End: