In issue #291, the Tracker class got its own ScheduledThreadPool for processing Events into TrackerPayloads, and passing them to the Emitter.
Threads in ScheduledThreadPools don't terminate when they've finished their task. They must be stopped manually. The Emitter class already has a method, close(), for handling ExecutorService shutdown. The Tracker now also needs a method to do the same.
In issue #291, the Tracker class got its own ScheduledThreadPool for processing Events into TrackerPayloads, and passing them to the Emitter.
Threads in ScheduledThreadPools don't terminate when they've finished their task. They must be stopped manually. The Emitter class already has a method,
close()
, for handling ExecutorService shutdown. The Tracker now also needs a method to do the same.