1 | package com.renomad.minum.queue; | |
2 | ||
3 | import com.renomad.minum.state.Context; | |
4 | import com.renomad.minum.logging.ILogger; | |
5 | import com.renomad.minum.utils.TimeUtils; | |
6 | ||
7 | /** | |
8 | * This class exists to properly kill off multiple action queues | |
9 | */ | |
10 | public final class ActionQueueKiller { | |
11 | ||
12 | private final Context context; | |
13 | private final ILogger logger; | |
14 | ||
15 | /** | |
16 | * If we were interrupted while attempting to cleanly kill the | |
17 | * action queues, this will be set true | |
18 | */ | |
19 | private boolean hadToInterrupt; | |
20 | ||
21 | public ActionQueueKiller(Context context) { | |
22 | this.context = context; | |
23 | this.logger = context.getLogger(); | |
24 | hadToInterrupt = false; | |
25 | } | |
26 | ||
27 | /** | |
28 | * Systematically stops and kills all the action queues that have been | |
29 | * instantiated in this call tree. | |
30 | */ | |
31 | public void killAllQueues() { | |
32 | logger.logDebug(() -> TimeUtils.getTimestampIsoInstant() + " Killing all queue threads. "); | |
33 |
1
1. killAllQueues : negated conditional → KILLED |
for (AbstractActionQueue aq = context.getActionQueueState().pollFromQueue(); aq != null ; aq = context.getActionQueueState().pollFromQueue()) { |
34 | AbstractActionQueue finalAq = aq; | |
35 |
1
1. killAllQueues : removed call to com/renomad/minum/queue/AbstractActionQueue::stop → KILLED |
finalAq.stop(); |
36 | logger.logDebug(() -> TimeUtils.getTimestampIsoInstant() + " killing " + ((ActionQueue)finalAq).getQueueThread()); | |
37 |
1
1. killAllQueues : negated conditional → KILLED |
if (((ActionQueue)finalAq).getQueueThread() != null) { |
38 | hadToInterrupt = true; | |
39 | System.out.println("had to interrupt " + finalAq); | |
40 | ((ActionQueue)finalAq).getQueueThread().interrupt(); | |
41 | } | |
42 | } | |
43 | } | |
44 | ||
45 | /** | |
46 | * A helpful indicator of whether this object was interrupted while | |
47 | * looping through the list of action queues | |
48 | * @return true If we were interrupted while attempting to cleanly kill the | |
49 | * action queues | |
50 | */ | |
51 | public boolean hadToInterrupt() { | |
52 |
2
1. hadToInterrupt : replaced boolean return with false for com/renomad/minum/queue/ActionQueueKiller::hadToInterrupt → KILLED 2. hadToInterrupt : replaced boolean return with true for com/renomad/minum/queue/ActionQueueKiller::hadToInterrupt → KILLED |
return hadToInterrupt; |
53 | } | |
54 | ||
55 | } | |
Mutations | ||
33 |
1.1 |
|
35 |
1.1 |
|
37 |
1.1 |
|
52 |
1.1 2.2 |