@Override public void onSave(Result<Void> result) { _isSaveRequested.compareAndSet(true, false); if (_modifiedList.size() == 0) { result.ok(null); return; } _modifiedWorkList.clear(); _modifiedWorkList.addAll(_modifiedList); _modifiedList.clear(); Result.Fork<Void,Void> fork = result.fork(); for (StubAmp stub : _modifiedWorkList) { stub.onSaveChild(fork.branch()); } fork.join(x->null); }
public void close(ShutdownModeAmp mode, Result<Void> result) { if (! _lifecycle.toDestroy()) { result.ok(null); return; } ArrayList<TableKelp> tables = new ArrayList<>(); for (TableKelp table : _db.getTables()) { tables.add(table); } Result<Void> resultJoin = Result.of(x->result.ok(closeImpl()), e->{ closeImpl(); result.fail(e); }); //Result<Void>[] tableFork = resultJoin.fork(tables.size(), x->null); Fork<Void,Void> fork = resultJoin.fork(); for (int i = 0; i < tables.size(); i++) { tables.get(i).close(mode, fork.branch()); // tableFork[i]); } fork.join(x->null); }