hayodea
55f21c5436
Add skeleton negtrinEventInd, build painfulQuale.cpp again
2025-10-21 19:38:49 -04:00
hayodea
d1b99852a8
Move MarionetteComponent out of component.h=>marionette.h
2025-10-21 19:38:49 -04:00
hayodea
66bb30cef5
Move painfulQuale.cpp into marionette
2025-10-21 19:38:49 -04:00
hayodea
068a885bff
Goal: now is a MentalEntity
2025-10-21 19:38:49 -04:00
latentprion
d317f1fb06
Whitespace
2025-10-16 03:41:22 -04:00
latentprion
edd223b083
Remove unnecessary componentThread.h #includes
...
Since componentThread #includes boost::asio components, removing
it should improve compile times.
2025-10-16 02:15:16 -04:00
latentprion
945c5b397b
Build: remove superfluous io_service.hpp #includes
2025-10-16 01:08:05 -04:00
latentprion
5017bf5f92
Build: use piecemeal boost headers.
...
Reduces compile time on a 4-core ARM Rpi5 from 1m12s wallclock
(i.e: "real") time to 0m55s; and from 4m+ "user" time to 3m8s.
2025-10-16 01:00:48 -04:00
hayodea
95d5c46e43
Rename: CologexSet=>CologexSeq to be consistent with chronomena
2025-10-05 21:44:12 -04:00
hayodea
4a55ff9bf2
Revamp Chronomenon: ChronoFrame and ChronoSeq are new classes
...
Chronomenon is now the base class category for stored raw
stim data.
2025-10-05 21:44:12 -04:00
hayodea
27ff4a3a0a
Concept,Cologex,Goal: refactor headers
...
All Cologexes (both Cologexes and CologexSets) are now categorized
as Concepts.
Goals are now also Concepts -- they inherit from Concept as a base
class.
Using Concept as the base class for both Cologex and CologexSet
allows us to treat both cologexes and cologexsets the same way
when comparing in the abstract.
2025-10-05 21:44:12 -04:00
hayodea
eddee05e41
Delete: qualeBundle.h
2025-10-05 21:44:12 -04:00
hayodea
ccc7fd8e04
Rename: Concept=>Cologex
2025-10-05 21:43:46 -04:00
hayodea
3a50be05f8
Qutex: nRequiredLocks==1 at front should never call backoff
2025-10-04 14:52:02 -04:00
hayodea
eb5875fe0d
Rename: Sense API => Stim Buff API
2025-10-01 20:03:47 -04:00
hayodea
56b8e83a09
Update senseApiDesc.h and opts.cpp for clarity in device attachment and usage examples
2025-10-01 18:20:59 -04:00
hayodea
a66d91fa31
DevAttachment:Rename: api=>stimbuffapi, implexor=>qualeiface
2025-10-01 18:10:58 -04:00
hayodea
e9e273c012
CMake: PRefix config opt with CONFIG_
2025-10-01 11:02:28 -04:00
hayodea
942f9d8515
DevMgr: formatting
2025-10-01 10:21:32 -04:00
hayodea
1e22656299
DevMgr: Call uniq_ptr.release on DeviceReattacher
2025-10-01 10:19:08 -04:00
hayodea
55fe2675df
DevMgr: Use releaseQutexEarly
2025-09-30 22:53:17 -04:00
hayodea
af19125ac2
Qutex: Add check for double-release()
2025-09-30 22:53:01 -04:00
hayodea
7ddbde1a2f
DevMgr:removeDASpec: Make serialized; acquire DevMgr qutex
2025-09-30 22:10:39 -04:00
hayodea
ac3d97b3ec
DevMgr:newDASpecInd: now lockvoked, acquires DevMgr qutex
...
We now acquire the DevMgr qutex when doing the newDASpecInd async
op. The qutex is held across an async sequence with potentially
a real hardware blocking bottleneck.
2025-09-30 22:01:34 -04:00
hayodea
274143e41d
Formatting
2025-09-30 21:40:26 -04:00
hayodea
d75430ef82
Qutex: Document the need to deal with early release()s
2025-09-30 21:25:58 -04:00
hayodea
06f3f2eebe
DevMgr:attachAllUnattachedDevicesFromKnownListReq: acquire qutex
...
We should acquire the qutex here before iterating through the list
of DA specs.
2025-09-30 21:24:51 -04:00
hayodea
07609c6d6c
SenseApiLib:Add isBeingDestroyed atomic flag for getter bailout
...
Since we have no choice but to access the sh_ptr<SenseApiLib> for
a lib before we can get its Qutex, we use this flag to ensure that
we can know whether the SenseApiLib data structure and its Qutex
are still valid when we enter -- i.e, we ensure that the SenseApiLib
object wasn't destroyed under our feet.
2025-09-30 21:01:00 -04:00
hayodea
1bad358921
DevMgr:at/detachSenseDevReq: release SenseApiMgr Qutex early
...
Release it early when we no longer need it.
2025-09-30 20:29:39 -04:00
hayodea
77e123ff4a
DevMgr:at/detachSenseDevReq: acquire SenseApiMgr qutex
2025-09-30 19:53:57 -04:00
hayodea
9c3a8ea695
Indentation
2025-09-30 19:51:50 -04:00
hayodea
0ff86a0a5e
SenseApiMgr: Add Qutex
2025-09-30 19:51:01 -04:00
hayodea
8ad5179a61
DevMgr:at/detachSenseDevReq: only acquire API lib lock
...
We don't actually manipulate any of SenseApiMgr or DevMgr's state
so there's no need to acquire their locks.
2025-09-30 19:47:23 -04:00
hayodea
e600b0f96e
DevMgr:at/detachSenseDevReq: acquire Api lib Qutex
2025-09-30 18:12:20 -04:00
hayodea
b0d61c3e38
DevMgr:at/detachSenseDevReq: Acquire DevMgr Qutex
2025-09-30 14:22:51 -04:00
hayodea
ccf0ab77bf
Move SerializedAsyncContin template method impls into header
2025-09-30 13:59:07 -04:00
hayodea
33b61f429a
LockSet: Move method impls into template header
2025-09-30 13:42:13 -04:00
hayodea
7ded9d287d
Split comment into relevant locations
2025-09-30 13:27:06 -04:00
hayodea
f15c07bc83
LockSet:tryAcquireOrBackoff use optional<ref_wrapper<Qutex>>
...
Replace the previous Qutex** raw pointer with a std::optional.
2025-09-30 10:36:19 -04:00
hayodea
e299e956e5
Move LockSet::release into header
2025-09-30 03:01:13 -04:00
hayodea
ca9eae197f
Lockvoker: Add registerInLockSet
...
We now create the sh_ptr to the copy of a lockvoker object in its
own supplied register method. This enables us to retain type safety
when calling make_shared, by copying the most derived version of
the lockvoker object. Then we can pass in the LockerAndInvokerBase
to the rest of the call chain.
2025-09-30 02:55:25 -04:00
hayodea
08122c086c
LockSet:tryAcquireOrBackoff: should take Qutex**, not Qutex*
...
No idea how this error survived in here for so long.
2025-09-30 02:53:54 -04:00
hayodea
cb8b13d0cd
LockSet:release() Remove superfluous Lockvoker arg
...
We decoupled unregistration from release() so we no longer need
to pass in a lockvoker to release().
2025-09-30 02:17:46 -04:00
hayodea
97d93c670e
Indentation
2025-09-30 01:15:30 -04:00
hayodea
9d77e8b345
SenseApiLib: Add qutex for lib state access serialization
2025-09-30 01:14:00 -04:00
hayodea
4bf19fda90
Get rid of rvalue ref returns
2025-09-30 00:37:54 -04:00
hayodea
ed9635582f
Lockvoker: add handleGridlock and invoke it
2025-09-30 00:32:54 -04:00
hayodea
d06ba8957a
QtxAcqHistTracker: Implement complete algo; add depend graph
...
The dependency graph class enables us to perform analysis on the
qutex acquisition history data. By generating the graph and
detecting cycles in it, we can find true gridlocks.
We use this graph analysis code to implement the algorithmically
complete version of the gridlock detector.
2025-09-30 00:24:33 -04:00
hayodea
1aec779351
CMake: Conditionally build QtxAcquisitionHistTracker
2025-09-29 21:09:31 -04:00
hayodea
6baa0bb008
Silence build warning
2025-09-29 20:48:49 -04:00