final AtomicBoolean saveQueued,
final ProjectProperties properties,
final PropertiesPersister persister) {
if (saveQueued.compareAndSet(false, true)) {
PropertiesPersister.PERSISTER_PROCESSOR.execute(Cancellation.UNCANCELABLE_TOKEN, new CancelableTask() {
@Override
public void execute(CancellationToken cancelToken) {
saveQueued.set(false);
persister.save(project, properties, null);
}