Bug 1942239 - Add option to explicitly enable incremental origin initialization in...
[gecko.git] / toolkit / xre / MacUtils.mm
blobf0e42ab91ae4c97dee8bd3f7fda0bc9f8b74cd0c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "MacAutoreleasePool.h"
7 #include "MacUtils.h"
9 namespace mozilla::MacUtils {
11 /**
12  * Helper to launch macOS tasks via NSTask and wait for the launched task to
13  * terminate.
14  */
15 void LaunchTask(NSString* aPath, NSArray* aArguments) {
16   MacAutoreleasePool pool;
18   @try {
19     NSTask* task = [[NSTask alloc] init];
20     [task setExecutableURL:[NSURL fileURLWithPath:aPath]];
21     if (aArguments) {
22       [task setArguments:aArguments];
23     }
24     [task launchAndReturnError:nil];
25     [task waitUntilExit];
26     [task release];
27   } @catch (NSException* e) {
28     NSLog(@"%@: %@", e.name, e.reason);
29   }
32 }  // namespace mozilla::MacUtils