Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

50
LINES

< > BotCompany Repo | #1001363 // Multi-program VM

JavaX source code [tags: use-pretranspiled] - run with: x30.jar

Libraryless. Click here for Pure Java version (1134L/8K/27K).

1  
!747
2  
!1001362 // named thread
3  
4  
m {
5  
  static boolean free = true;
6  
  static new L<PaA> programsStarted;
7  
  
8  
  static class PaA {
9  
    S progID;
10  
    S[] arguments;
11  
    
12  
    *(S *progID, S[] *arguments) {}
13  
    *() {}
14  
  }
15  
  
16  
  p {
17  
    makeAndroid3("A multi-program VM. PID: " + getPID());
18  
    sleep();
19  
  }
20  
  
21  
  static synchronized S answer(S s, L<S> history) {
22  
    new Matches m;
23  
    
24  
    if (match3("please start program *", s, m)) {
25  
      if (!free) ret "Sorry, not free.";
26  
      
27  
      final S progID = formatSnippetID(unquote(m.m[0]));
28  
      final S[] arguments = new S[0];
29  
      programsStarted.add(new PaA(progID, arguments));
30  
      
31  
      // better call JavaX for translation in a single thread.
32  
      final Class theClass = hotwire(progID);
33  
      
34  
      // program may run in its own thread.
35  
      thread progID {
36  
        callMain(theClass, arguments);
37  
      }
38  
      
39  
      ret "OK.";
40  
    }
41  
    
42  
    if (match3("are you free to start a program?", s))
43  
      ret free ? "Yes." : "No."; // free is usually true, but may be set to false by someone to stop this VM from starting more programs.
44  
      
45  
    if (match3("list programs started", s))
46  
      ret structure(programsStarted);
47  
  
48  
    ret null;
49  
  }
50  
}

Author comment

Began life as a copy of #1001361

download  show line numbers  debug dex  old transpilations   

Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, teubizvjbppd, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1001363
Snippet name: Multi-program VM
Eternal ID of this version: #1001363/1
Text MD5: 99f55c3b323155ca78d6429fb2e4cedb
Transpilation MD5: 37fe4fd000eafee2d10f9f025c87d8e1
Author: stefan
Category: javax
Type: JavaX source code
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2015-10-12 20:49:40
Source code size: 1250 bytes / 50 lines
Pitched / IR pitched: No / Yes
Views / Downloads: 520 / 523
Referenced in: [show references]