summaryrefslogtreecommitdiffstats
path: root/workqueue.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Don't use DB matches for subscriptionsMason Jones2025-09-121-2/+1
|
* Publish -> Notify: and Subscribe -> Subscribe:Mason Jones2025-09-101-1/+1
|
* Implement sub/pubMason Jones2025-09-091-2/+10
|
* Make asan optional with ASAN_ENABLE env varOmar Rizwan2025-04-231-0/+3
|
* Remove unused trace & thread-constraint stuffOmar Rizwan2025-02-211-4/+0
|
* Some hold and keep cleanupOmar Rizwan2025-02-111-15/+1
|
* WIP: Inline SAY into the running When block.Omar Rizwan2025-02-101-14/+1
|
* WIP: Steal-one instead of steal-half. Might fix dropping itemsOmar Rizwan2024-12-051-4/+0
| | | | | | | | 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: Untested on Linux: remove semaphoreOmar Rizwan2024-11-291-3/+0
| | | | Wasn't using this and it was almost certainly a bottleneck.
* Free Hold key and sourceFileNameOmar Rizwan2024-11-231-1/+1
|
* WIP: Replace REMOVE_PARENT with EVALOmar Rizwan2024-11-171-2/+4
| | | | | so most of removal can happen immediately (preventing pileup), except for destructor evaluation which gets queued
* Implement steal-half (had to be careful with ssize_t)Omar Rizwan2024-10-161-0/+4
|
* WIP: Do removes on global work queue (compiles, untested)Omar Rizwan2024-10-021-0/+1
| | | | | | We need to do removes on a work queue because they may induce arbitrary Tcl evaluation (in a destructor) which may run Hold/Assert/Retract and induce arbitrary work.
* WIP: Add sustain option to Hold!; sysmon will clean upOmar Rizwan2024-09-271-1/+1
| | | | | Remove REMOVE_PARENT workqueue operation, since sysmon will do it asynchronously instead of using the workqueues.
* workerWaiters scheme. This seems to work pretty well?Omar Rizwan2024-08-071-0/+7
| | | | | | | | 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.
* WIP: Statements carry source line/filename infoOmar Rizwan2024-07-211-1/+17
| | | | Working on making stacktraces work.
* workqueue: Use wingo fix for integer overflowOmar Rizwan2024-05-171-3/+3
|
* WIP: new workqueue/thread control compilesOmar Rizwan2024-05-171-3/+3
|
* WIP: workqueue from chase-levOmar Rizwan2024-05-171-6/+9
|
* Add REMOVE_PARENT to try to incrementalize better. Add trie mutex.Omar Rizwan2024-03-221-1/+2
| | | | | | | 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/+9
| | | | | | | | | | | | | | 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
* (Mostly) transition from raw pointers to generational refsOmar Rizwan2024-02-211-3/+8
| | | | | | | (Haven't moved dep graph over yet.) This lets us use them as weak refs, so that we can keep invalid refs in the workqueue and check and preempt work items if they are based on since-invalidated dependencies. It also should just make memory safety easier.
* WIP: Start on Hold. Clarify/clean up ownershipOmar Rizwan2024-02-191-2/+15
| | | | | | We were double-copying Clauses and terms before. We should only have to copy once (on addition to workqueue) and then only do ownership transfers from then on.
* Add thread-constraint support. Reschedule gpu.folk onto thread 0Omar Rizwan2024-02-161-0/+2
|
* Implement Say. Split off test.tcl. Fix mutex bugs.Omar Rizwan2024-02-061-3/+8
| | | | | Encapsulate Statement type. Next: render edges in graph to make sure Say is setting up parent/child relationships properly.
* main: Pop item from work queue in each worker.Omar Rizwan2024-01-261-2/+15
|
* workqueue: WIP, trying to figure out process designOmar Rizwan2024-01-261-0/+13