242 |
|
set(result); |
243 |
|
} |
244 |
|
} finally { |
245 |
+ |
// runner must be non-null until state is settled to |
246 |
+ |
// prevent concurrent calls to run() |
247 |
|
runner = null; |
248 |
+ |
// state must be re-read after nulling runner to prevent |
249 |
+ |
// leaked interrupts |
250 |
|
int s = state; |
251 |
|
if (s >= INTERRUPTING) |
252 |
|
handlePossibleCancellationInterrupt(s); |
280 |
|
} |
281 |
|
} |
282 |
|
} finally { |
283 |
+ |
// runner must be non-null until state is settled to |
284 |
+ |
// prevent concurrent calls to run() |
285 |
|
runner = null; |
286 |
+ |
// state must be re-read after nulling runner to prevent |
287 |
+ |
// leaked interrupts |
288 |
|
s = state; |
289 |
|
if (s >= INTERRUPTING) |
290 |
|
handlePossibleCancellationInterrupt(s); |