def schedule(self, action, state=None):

        scheduler = self
        disposable = SingleAssignmentDisposable()

        def interval():
            disposable.disposable = action(scheduler, state)

        alarm = self.master.after_idle(interval)

        def dispose():
            # nonlocal alarm
            self.master.after_cancel(alarm)

        return CompositeDisposable(disposable, Disposable(dispose))
L{postApplication} should change the UID and GID to the values
dataset/ETHPy150Open ReactiveX/RxPY/rx/concurrency/mainloopscheduler/tkinterscheduler.py/TkinterScheduler.schedule--crossover with--dataset/ETHPy150Open kuri65536/python-for-android/python-modules/twisted/twisted/test/test_twistd.py/ApplicationRunnerTest.test_applicationStartsWithConfiguredNumericIDs