1 | static long dm_evalOnOtherMachineWithReturnValue_timeout = 60000; |
2 | |
3 | sO dm_evalOnOtherMachineWithReturnValue(fS computerID, S code, O... _) {
|
4 | fS id = aGlobalID(); |
5 | final new Var<Either<O, S>> var; |
6 | temp vmBus_onMessage('gotFromPrivateChat, voidfunc(S sender, S msg) {
|
7 | if (var.has() || neq(sender, computerID)) ret; |
8 | new Matches m; |
9 | if (!startsWith(msg, "done " + id + " ", m)) ret; |
10 | if (neq(getAuthorOfSignedText(msg), computerID)) {
|
11 | File f = javaxCachesDir("failed-eval-msg-" + computerID);
|
12 | saveTextFile(f, msg); |
13 | var.set((Either) eitherB("eval result from " + computerID + " did not verify, saved as " + f));
|
14 | } |
15 | S s = firstLine(m.rest()); |
16 | if (startsWith(s, "direct: ", m)) |
17 | var.set((Either) eitherA(m.rest())); |
18 | else if (startsWith(s, "quoted: ", m)) |
19 | var.set((Either) eitherA(unquote(m.rest()))); |
20 | else if (startsWith(s, "base64: ", m)) |
21 | var.set((Either) eitherA(base64decode(m.rest()))); |
22 | else if (startsWith(s, "error: ", m)) |
23 | var.set((Either) eitherB(m.rest())); |
24 | else |
25 | var.set((Either) eitherB("unknown mode"));
|
26 | }); |
27 | dm_privateChat_sendSigned(computerID, computerID + " eval " |
28 | + (boolOptPar(_, 'realEval) ? "real " : "") |
29 | + (boolOptPar(_, 'fresh) ? "fresh " : "") |
30 | + id + ": " + code); |
31 | Either<O, S> e = waitForVarToBeNotNullWithTimeout(var, dm_evalOnOtherMachineWithReturnValue_timeout); |
32 | |
33 | if (boolPar updateControllableFlag(_)) |
34 | dm_pcall('controllableComputerList, 'setControllableByMe, computerID, eitherIsA(e));
|
35 | |
36 | if (e == null) fail("timeout");
|
37 | if (eitherIsB(e)) fail(eitherGetB(e)); |
38 | ret eitherGetA(e); |
39 | } |
Began life as a copy of #1019606
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, snaazhdonpnp, tvejysmllsmz, vouqrxazstgt, wnsclhtenguj, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1019610 |
| Snippet name: | dm_evalOnOtherMachineWithReturnValue |
| Eternal ID of this version: | #1019610/28 |
| Text MD5: | 57eda72f41247f2f71ea994d58d2987d |
| Author: | stefan |
| Category: | javax / stefan's os |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2019-03-10 11:03:36 |
| Source code size: | 1660 bytes / 39 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 614 / 748 |
| Version history: | 27 change(s) |
| Referenced in: | [show references] |