summaryrefslogtreecommitdiffstats
path: root/workqueue.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* workqueue: Don't need to trace items anymoreOmar Rizwan2024-12-051-8/+2
|
* WIP: Steal-one instead of steal-half. Might fix dropping itemsOmar Rizwan2024-12-051-32/+17
| | | | | | | | Need to test on full Folk system, but this looks like it might fix leaks of statements/work items. Lots of jammed-in half-enabled instrumentation of allocations that I'll remove later.
* workqueue: Fix horrible bug in steal-one (Andy Wingo bug)Omar Rizwan2024-12-051-1/+2
|
* workqueue: Untested on Linux: remove semaphoreOmar Rizwan2024-11-291-16/+1
| | | | Wasn't using this and it was almost certainly a bottleneck.
* Some doc improvementsOmar Rizwan2024-11-171-1/+1
|
* workqueue: WIP: actually steal half, not allOmar Rizwan2024-11-171-1/+3
|
* WIP: check workqueue resize (they're getting HUGE on gadget-pink)Omar Rizwan2024-11-141-0/+4
| | | | clean up print.
* workqueue: Fix steal-half; fixes queue blockages!Omar Rizwan2024-11-061-4/+4
|
* WIP: report workqueue sizes on steal traceOmar Rizwan2024-11-061-0/+7
|
* Implement steal-half (had to be careful with ssize_t)Omar Rizwan2024-10-161-2/+28
|
* web/threads: Factor out itemToStringObjOmar Rizwan2024-09-191-1/+1
|
* WIP: Starting on workqueue reportingOmar Rizwan2024-09-191-4/+25
| | | | | Need to debug why work items sometimes get dropped (so the GPU doesn't launch, or the web server doesn't launch, or whatever.)
* workqueue: Fix semaphore on macOSOmar Rizwan2024-08-131-5/+8
|
* workerWaiters scheme. This seems to work pretty well?Omar Rizwan2024-08-071-1/+16
| | | | | | | | Goal: keep at least a couple of threads generally alive and able to respond to new work (which may be dispatched from web, camera, etc). The manager can replenish that set of threads, they may get depleted by computational or OS-blocking work, and extra threads beyond the minimum number of workers should die off over time.
* Fix workqueue.cOmar Rizwan2024-05-221-0/+1
|
* trace: Raise limit; print thread indexOmar Rizwan2024-05-221-1/+0
| | | | Trying to debug why I'm getting dupe items in the trace
* workqueue: Use wingo fix for integer overflowOmar Rizwan2024-05-171-8/+11
|
* WIP: new workqueue/thread control compilesOmar Rizwan2024-05-171-6/+15
|
* WIP: workqueue from chase-levOmar Rizwan2024-05-171-44/+91
|
* Add REMOVE_PARENT to try to incrementalize better. Add trie mutex.Omar Rizwan2024-03-221-2/+8
| | | | | | | Trie mutex guards the trieRemove operation that may happen on statement/match release (you don't want to have to hold the db mutex for those, so we make this trie mutex to be smaller to just guard the trie itself).
* WIP: Start on big locking/parallelism refactorOmar Rizwan2024-02-221-1/+2
| | | | | | | | | | | | | | Remove big DB lock, since that didn't work anyway (we were releasing it on Jim eval) + it would throttle parallelism. Add per-statement and per-match locks. Try to parallelize all Tcl evaluations, even for a particular When, by putting them on the workqueue as well. Definitely not done yet. Outstanding issues: - test hangs still. is Hold broken? - not freeing Clauses properly. do we need to refcount? - still probably some race issues
* workqueue: HOLD priority, some comments.Omar Rizwan2024-02-191-4/+4
|
* Implement Say. Split off test.tcl. Fix mutex bugs.Omar Rizwan2024-02-061-0/+1
| | | | | Encapsulate Statement type. Next: render edges in graph to make sure Say is setting up parent/child relationships properly.
* Push items to workqueue.Omar Rizwan2024-01-261-0/+5
|
* main: Pop item from work queue in each worker.Omar Rizwan2024-01-261-22/+22
|
* Move to thread prototyping, delete shm_mallocOmar Rizwan2024-01-261-11/+0
| | | | | | | | | | Threads seem better for now because of all the resources we need to share: Vulkan, camera, and especially C modules, which we want to be callable from any Folk worker. I struggled to figure out how to even share a pqueue between processes (how do you share the mapping of the pqueue ops so that the function pointers are valid everywhere?)
* workqueue: Build, print addressesOmar Rizwan2024-01-261-0/+4
|
* workqueue: WIP, trying to figure out process designOmar Rizwan2024-01-261-0/+55