summaryrefslogtreecommitdiffstats
path: root/lib/process.tcl (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Clear mailbox of unmatched processesNaveen Michaud-Agrawal2023-11-231-0/+2
|
* display: WIP: Refactor into files; use wishes, not Display::Omar Rizwan2023-10-061-11/+13
| | | | | | | | Expose shader stuff to user programs for the first time. Mostly works, but display thread and main thread run much slower (28fps display, 70fps main). Also introduce dict getwithdefault (helpful for rest options).
* process: Allow running multiple On process blocks on processOmar Rizwan2023-10-061-6/+18
| | | | | | | | | Turn off share wishes/claims default for subprocesses, so you (for now) have to explicitly specify sharing if you want any to happen. On process now only spawns process if it doesn't exist but always runs the code block (which now happens through a statement instead of directly on init).
* WIP: Rewrite peering to use shm instead of websocketsOmar Rizwan2023-08-151-5/+8
| | | | Huge performance increases, but crashy.
* WIP: process/peer reworkingOmar Rizwan2023-07-211-32/+38
| | | | | | | | | 1. Use a permanent blacklist so processes from unmatched matches can't leak statements if they connect after the destructor is gone 2. Have subprocesses die on disconnect from the main process TODO: need to handle races between multiple camera processes.
* test/process: Add test for disposal of briefly-appearing processOmar Rizwan2023-07-211-0/+3
|
* Clean up process unmatch handlerOmar Rizwan2023-06-281-17/+3
|
* Clean up unmatch and sharing so it actually only runs on subprocOmar Rizwan2023-06-191-18/+21
|
* Use m/s: format for stringifying ids. Make subproc share allOmar Rizwan2023-06-181-3/+1
|
* Introduce fork-zygote process system.Omar Rizwan2023-06-181-48/+76
| | | | | | | | | | | | | | Also refactors/separates ::nodename to be ::thisNode (this computer) and ::thisProcess (this OS process). All tests should pass. Zygote-based processes are much faster to start up since they don't need to recompile C code or reload Folk. They still need to connect to Folk via WebSocket for now, and the automatic management we'd want (bidirectional, based on both match lifetime and process lifetime) isn't working yet. Some of the node vs. process distinction in naming still needs to be cleaned up, too, I think.
* Fix handleReadableOmar Rizwan2023-06-021-0/+1
|
* Merge branch 'main' into osnr/camera-pipelineOmar Rizwan2023-06-021-1/+1
|\
| * All tests passOmar Rizwan2023-06-011-3/+4
| |
| * Use one-off namespaces so inner scope can't stomp outer scopeOmar Rizwan2023-04-261-1/+1
| | | | | | | | | | and so that we can keep blowing away namespaces instead of doing cleanup
* | Use chan open for process executionCharles Chamberlain2023-06-011-10/+14
| |
* | Getting one camera frame from a threadCharles Chamberlain2023-06-011-1/+11
| |
* | Fix bug in process naming: choose unique names in same fileCharles Chamberlain2023-06-011-0/+4
| |
* | Implement bidirectional peering & receive statementsOmar Rizwan2023-05-251-2/+4
| |
* | Allow bare When/Claim in subprocessOmar Rizwan2023-05-251-1/+4
|/
* Guard against variable stomp when you call Step inside a StepOmar Rizwan2023-03-181-1/+1
|
* Add support for `shares all claims`; fix Commit in subprocessOmar Rizwan2023-03-171-1/+1
|
* Use a closed variable instead of global in the commitOmar Rizwan2023-03-171-0/+1
|
* Introduce new process test (doesn't work yet)Omar Rizwan2023-03-131-17/+0
| | | | | (Prep for putting camera in a managed process, then doing incremental camera)
* Basic process statement sharing test passes.Omar Rizwan2023-02-141-0/+20
|
* More cleanup/refactoring of peering.Omar Rizwan2023-02-141-4/+6
| | | | Start trying to test IPC statements.
* Refactor peering. Refactor process.Omar Rizwan2023-02-141-8/+11
|
* process: Refactor to use per-process namespaceOmar Rizwan2023-02-141-32/+43
|
* process: Show stdout/stderr as label.Omar Rizwan2023-02-141-10/+19
|
* Refactor sharing to have a more general 'peers' system.Omar Rizwan2023-02-111-1/+1
| | | | | | | | | | | | | | | | | This is in prep for interprocess communication. For now, it is just used to implement pretty much the same generational laptop-sharing-to-table scheme, although done with explicit share-patterns instead of implicitly based on assertion, which is nice. Also make `Claim` and `Wish` store the calling $this instead of `someone`. Also start on `Do` for controlling side effects. Also move back to the old way of collecting matches & build it into main -- this is used as a hack for negation (so we can explicitly retract the Pi root statements when a laptop connects)
* Move process logic into lib/process.tclOmar Rizwan2023-02-101-0/+30