static long dm_evalOnOtherMachineWithReturnValue_timeout = 30000; sS dm_evalOnOtherMachineWithReturnValue(fS computerID, S code) { fS id = aGlobalID(); final new Var var; temp vmBus_onMessage('gotFromChat, voidfunc(S msg) { if (var.has()) ret; new Matches m; if (!startsWith(msg, "done " + id + ": ", m)) ret; if (neq(getAuthorOfSignedText(msg), computerID)) ret; var.set(firstLine(m.rest())); }); dm_osChat_postSigned(computerID + " eval " + id + ": " + code); ret waitForVarToBeNotNullWithTimeout(var, dm_evalOnOtherMachineWithReturnValue_timeout); }