| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
Wasn't using this and it was almost certainly a bottleneck.
|
| | |
|
| |
|
|
|
| |
so most of removal can happen immediately (preventing pileup), except
for destructor evaluation which gets queued
|
| | |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Remove REMOVE_PARENT workqueue operation, since sysmon will do it
asynchronously instead of using the workqueues.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
Working on making stacktraces work.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
(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.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
| |
Encapsulate Statement type. Next: render edges in graph to make sure
Say is setting up parent/child relationships properly.
|
| | |
|
| |
|