The causes for this are that is some way the memory management in the app is leading to having more than one PocketsphinxController. When you call stopListening, that allows an instantiated PocketsphinxController to release its thread and objects, if the memory management is otherwise only instantiating a single instance of PocketsphinxController in your app. But if there is something else leading to there being multiple PocketsphinxControllers, stopListening alone isn’t going to prevent this issue, so the issue to check out and troubleshoot is memory management.
This could also happen if you have multiple instances of your view controller or if something else about the view controller doesn’t allow all of its objects to release on exit. I’d start by making sure you’re using the lazy instantiation pattern shown in the tutorial for PocketsphinxController and then move on to checking out whether something else in the app structure is leading to multiple view controller instances. If this doesn’t help, you could make a very, very stripped-down example app for me demonstrating the issue and I’ll take a look at it, but it has to basically have no code in it other than this phenomenon or it won’t be possible to test.