[Pythonmac-SIG] question about garbage collection with NSApplication.run()

Bill Janssen janssen at parc.com
Sun May 31 20:34:20 CEST 2009


I'm writing a Python program that has a main that looks like this:

        application = NSApplication.sharedApplication()

        # set up handler for network change notification
        SCDynamicStoreSetNotificationKeys(DYNSTORE, None, [NETWORK_KEY,])
        # Get a CFRunLoopSource for our store session and add it to the application's runloop:
        CFRunLoopAddSource(
            NSRunLoop.currentRunLoop().getCFRunLoop(),
            SCDynamicStoreCreateRunLoopSource(None, DYNSTORE, 0),
            kCFRunLoopCommonModes
            )

        # add a timer for application scan events
        timer = NSTimer.scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(
            periodicity, scanner, objc.selector(scanner.scan, signature="v@:"), None, True)

        # using an NSRunLoop avoids Activity Monitor complaining about "not responding"
        application.run()

Do I need to do anything about NSAutoreleasePools?  My understanding is
that this is single-threaded, and that NSApplication.run will handle
periodic drainage of the default main thread release pool.

Bill


More information about the Pythonmac-SIG mailing list