Maybe refactoring for loop for assigning result variable and breaking a loop instead of immediate return would look better and lead to natural call of after the loop before returning.
Maybe refactoring for loop for assigning result variable and breaking a loop instead of immediate return would look better and lead to natural call of deleteLSNWaiter()after the loop before returning.