24 Commits

Author SHA1 Message Date
John Sully
7ba2941735 Add support for sanitizers and fix issues they have found
Former-commit-id: 58971a430dd3e4e8c39c7b5288211bc2ba7699ed
2019-07-18 18:39:42 -04:00
John Sully
8f1e7d9d5b Fix deadlock with client and ae locks
Former-commit-id: 8630339e43c1de1cd723bdfdca8ab5924e2cb8b0
2019-07-12 20:46:50 -04:00
John Sully
5aaa95ec11 Fix additional warnings
Former-commit-id: 1531cfb7eea1824fb40da596b3446baa4312355c
2019-06-27 16:29:36 -04:00
John Sully
15d37f3d65 Fix mac build breaks
Former-commit-id: 16a89f21dc0beb23b7eb8f2e378d076da918c0d6
2019-06-27 15:04:09 -04:00
John Sully
fb1b845fe5 Fix issues with relaxed memory model architectures
Former-commit-id: e37bc4ad40e852b67ee14e5aa87fd2f398f00eed
2019-06-17 23:00:12 -04:00
John Sully
0cd9bc48fc Even the next up thread should sleep in the futex
Former-commit-id: 8b76b01bfe710603bcdc101da6eb27afcee7e1b1
2019-06-17 23:00:12 -04:00
John Sully
5573f021c5 Fallback to a futex if we spin for a long time
Former-commit-id: ec57b4b0248bba671e388a2257b1bd65ed8d0f44
2019-06-17 23:00:12 -04:00
John Sully
a6724676be OS X build fixes
Former-commit-id: 1dff223c713cba0b336f34328d223ddd675a3781
2019-03-24 18:06:57 -04:00
John Sully
4def2bad94 comment issue
Former-commit-id: 19956b3807aa6895b438162f39d17db17ef726f4
2019-03-21 22:18:48 +00:00
John Sully
4ed44398fd Polarity of the weak flag was wrong. We want to use the strong variant of atomic_compare_exchange always
Former-commit-id: ab9122f2cb910bb5560a9fde16bc3c096ecfb510
2019-03-21 22:17:04 +00:00
John Sully
be3272ec38 Add debugging stats to the INFO command
Former-commit-id: ac80a5c6a6676f45ac7d460a9cfb02fef8b48d78
2019-03-19 22:04:33 -04:00
John Sully
465b8a9ea7 write fastlock_unlock in ASM... because its faster
Former-commit-id: bad73faf28f879d32c4064389b69c83e9474115a
2019-03-02 16:47:27 -05:00
John Sully
7a4227915a Rewrite our spinlock in assembly, pretty big performance improvement
Former-commit-id: 40d7a701feefd36e9e3fdb6d516228c4a70fcf3d
2019-02-25 18:21:27 -05:00
John Sully
1761aabab4 Lock use after free 2019-02-22 21:00:14 -05:00
John Sully
b6735ac883 Remove unnecessary mfences 2019-02-22 15:49:22 -05:00
John Sully
d016b967c5 Implement try_lock 2019-02-22 01:23:31 -05:00
John Sully
942510f1a5 Change fastlock implementation from naive spinlock to a ticket lock for better fairness and lower peak latency 2019-02-21 00:16:47 -05:00
John Sully
02e7fe400c Cleanup lock contention, and ensure clients are written to in an unsafe way when the global lock is released 2019-02-20 23:30:21 -05:00
John Sully
29c1105132 Multithreading works! 2019-02-20 01:20:26 -05:00
John Sully
2526d51d1a Thread safety fixes 2019-02-18 22:25:35 -05:00
John Sully
2c220889c6 Fix recursive fastlock... 2019-02-16 14:25:14 -05:00
John Sully
f5caec488d Make the lock recursive, this is because processEventsWhileBlocked may cause us to lock multiple times 2019-02-15 14:11:05 -05:00
John Sully
988ea40101 Fastlock fixes 2019-02-10 22:00:19 -05:00
John Sully
c4dbc557eb move ae to C++ 2019-02-10 20:24:11 -05:00