Intermittent Memory Leak Indicated in Simulator When Using AVAudioEngine with mainMixerNode Only

Hello,

I'm observing an intermittent memory leak being reported in the iOS Simulator when initializing and starting an AVAudioEngine. Even with minimal setup—just attaching a single AVAudioPlayerNode and connecting it to the mainMixerNode—Xcode's memory diagnostics and Instruments sometimes flag a leak.

Here is a simplified version of the code I'm using:

// This function is called when the user taps a button in the view controller:
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (IBAction)myButtonAction:(id)sender {
    NSLog(@"Test");
    soundCreate();
}
@end

// media.m
static AVAudioEngine *audioEngine = nil;

void soundCreate(void)
{
    if (audioEngine != nil)
        return;

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];

    audioEngine = [[AVAudioEngine alloc] init];

    AVAudioPlayerNode* playerNode = [[AVAudioPlayerNode alloc] init];
    [audioEngine attachNode:playerNode];
    [audioEngine connect:playerNode to:(AVAudioNode *)[audioEngine mainMixerNode] format:nil];

    [audioEngine startAndReturnError:nil];
}

In the memory leak report, the following call stack is repeated, seemingly in a loop:

ListenerMap::InsertEvent(XAudioUnitEvent const&, ListenerBinding*)	AudioToolboxCore		
ListenerMap::AddParameter(AUListener*, void*, XAudioUnitEvent const&)	AudioToolboxCore		
AUListenerAddParameter	AudioToolboxCore		
addOrRemoveParameterListeners(OpaqueAudioComponentInstance*, AUListenerBase*, AUParameterTree*, bool)	AudioToolboxCore		
0x180178ddf	
Intermittent Memory Leak Indicated in Simulator When Using AVAudioEngine with mainMixerNode Only
 
 
Q