void
TestPGTask::Perform
	(
	const Time	delta,
	Time*		maxSleepTime
	)
{
	JBoolean keepGoing = kJTrue;
	if (TimeToPerform(delta, maxSleepTime))
		{
		JWait(0.5);		// simulate massive, greedy number crunching
		itsCounter++;
		keepGoing = itsPG->IncrementProgress();
		}
	else
		{
		keepGoing = itsPG->ProcessContinuing();
		}

	if (!keepGoing || itsCounter >= kStepCount)
		{
		itsPG->ProcessFinished();
		jdelete this;				// safe to commit suicide as last action
		}
}
void
SyGBeginEditingTask::Perform
	(
	const Time	delta,
	Time*		maxSleepTime
	)
{
	if (TimeToPerform(delta, maxSleepTime))
		{
		Perform();
		}
}
void
JXTimerTask::Perform
	(
	const Time	delta,
	Time*		maxSleepTime
	)
{
	if (TimeToPerform(delta, maxSleepTime))
		{
		Broadcast(TimerWentOff());
		if (itsIsOneShotFlag)
			{
			delete this;
			}
		}
}
void
SVNRefreshStatusTask::Perform
	(
	const Time	delta,
	Time*		maxSleepTime
	)
{
	if (itsDirector == NULL)
		{
		delete this;
		}

	if (TimeToPerform(delta, maxSleepTime) &&
		itsDirector->OKToStartActionProcess())
		{
		itsDirector->RefreshStatus();	// deletes us
		}
}
void
GLockFileTask::Perform
	(
	const Time	delta,
	Time*		maxSleepTime
	)
{
	if (TimeToPerform(delta, maxSleepTime))
		{
		if (itsIconify)
			{
			GMGetApplication()->OpenIconifiedMailbox(itsMailbox);
			}
		else
			{
			GMGetApplication()->OpenMailbox(itsMailbox);
			}
		}
}