Michael Walker
fa92d4a050
Don't pre-empt STM transactions which only allocate new variables
2015-03-10 14:18:50 +00:00
Michael Walker
f95ab4122a
Report 2 capabilities for test runners, not 4.
...
The literature sttes that many bugs are found with 2 concurrent
threads, so encouraging even more parallelism is possibly a win in
only a small number of cases, but potentially a huge cost in many.
2015-02-27 21:01:10 +00:00
Michael Walker
3d0a82d915
Lie and return 4 for getNumCapabilities in DejaFu
2015-02-27 01:32:37 +00:00
Michael Walker
6c4015c314
Avoid re-running tests in dejafus. Closes #12 .
2015-02-26 21:57:55 +00:00
Michael Walker
9aea975304
Only check runnable threads in isLocked
2015-02-23 18:39:41 +00:00
Michael Walker
14b08ff026
Un-break detection of global deadlock
2015-02-23 18:23:58 +00:00
Michael Walker
4a69fde83e
Enable detection of nonglobal deadlock when every thread is in a fully-known state. Closes #9 .
2015-02-23 17:58:12 +00:00
Michael Walker
f626e79553
Implement the new primitives in stepThread
2015-02-23 17:32:08 +00:00
Michael Walker
b8ff9a77f5
Add primitives for the new testing functions
2015-02-23 17:27:26 +00:00
Michael Walker
e72b84c613
Add an internal STM module
2015-02-23 17:24:02 +00:00
Michael Walker
2a6cbe8951
Add functions to MonadConc to record known vars
2015-02-23 17:23:26 +00:00
Michael Walker
0e3ba970bd
Make CRefs interesting
2015-02-20 18:49:19 +00:00
Michael Walker
5862d536ca
Use default writeCRef for IO
2015-02-20 16:53:38 +00:00
Michael Walker
0ea2930862
Implement CRefs in stepThread
2015-02-20 16:24:21 +00:00
Michael Walker
a4a291368d
Add primitives for CRefs
2015-02-20 16:14:50 +00:00
Michael Walker
2f61cf6557
Add mutable non-blocking atomically-modifiable references
2015-02-20 15:59:53 +00:00
Michael Walker
0dba84f9a8
Add forkOn and getNumCapabilities
2015-02-18 00:13:12 +00:00
Michael Walker
9609823dd5
Add exception checking to autocheck
2015-02-17 11:22:17 +00:00
Michael Walker
998fdeb833
Update the deadlocks* predicates to handle STMDeadlock, and add exceptions* predicates
2015-02-17 05:58:25 +00:00
Michael Walker
22a15dfe95
Resolve all name conflicts with Prelude.catch in base-4.5
2015-02-16 03:47:14 +00:00
Michael Walker
6a371e6994
Use cabal-1.22 in travis
2015-02-16 03:38:50 +00:00
Michael Walker
1063b36fbd
Resolve conflict with Prelude.catch in base-4.5 in STM
2015-02-16 03:37:16 +00:00
Michael Walker
6f253df520
Drop base dependency to 4.5
2015-02-16 03:33:37 +00:00
Michael Walker
5d0545b198
Test more GHC versions in travis
2015-02-16 03:29:40 +00:00
Michael Walker
ab6e411c38
Tidy up Deterministic.Internal
2015-02-16 03:16:55 +00:00
Michael Walker
f41a39e490
Add ImpredicativeTypes everywhere to make mask (grr, exceptions) work with GHC 7.8.4
2015-02-16 02:50:52 +00:00
Michael Walker
ad98bb6d90
Fix a => typo (why did that ever compile and run!?)
2015-02-16 02:50:20 +00:00
Michael Walker
392a8c54c6
Add some STM tests. Closes #7 .
2015-02-14 23:55:58 +00:00
Michael Walker
921d505015
Merge branch 'exceptions'
...
Closes #4 .
2015-02-14 23:45:42 +00:00
Michael Walker
62711d9025
Add some exception tests
2015-02-14 23:45:14 +00:00
Michael Walker
7409bc67cd
Re-export MaskingState from Deterministic
2015-02-14 21:24:41 +00:00
Michael Walker
99dd56adfe
Implement forkWithUnmask
2015-02-14 21:16:44 +00:00
Michael Walker
abc31aa165
Have throwTo get blocked on mask state
2015-02-14 21:01:33 +00:00
Michael Walker
8af7b814c2
Consider masking changes interesting for SCT
2015-02-14 18:59:11 +00:00
Michael Walker
f75db99713
Implement AMasking and AResetMask (but don't yet consider masking in throwTo!)
2015-02-14 18:54:43 +00:00
Michael Walker
5dc8476cac
Threads inherit the masking state of their parent
2015-02-14 16:05:16 +00:00
Michael Walker
3a4c58b4ee
Turn threads into records
2015-02-14 16:02:07 +00:00
Michael Walker
8f4007ed59
Add a AResetMasking action
2015-02-14 15:47:48 +00:00
Michael Walker
825b135dc1
Add AMasking primitive
2015-02-13 18:30:21 +00:00
Michael Walker
f18209f2e0
Make MonadMask a requirement for MonadConc
2015-02-13 17:47:04 +00:00
Michael Walker
8faee29b27
Implement throwTo and killThread
2015-02-13 17:13:00 +00:00
Michael Walker
2a79b78901
Pop exception handlers off the stack when leaving their scope
2015-02-13 14:06:52 +00:00
Michael Walker
ad216bd3a9
hlint fixes
2015-02-13 00:56:45 +00:00
Michael Walker
cf1c6ebece
Available ThreadIds. Closes #3
2015-02-13 00:55:05 +00:00
Michael Walker
97611ff5b5
Implement catching exceptions
2015-02-13 00:50:58 +00:00
Michael Walker
9bd781c697
Primitive for throwing exceptions
2015-02-13 00:46:48 +00:00
Michael Walker
5ce63d0d50
Use MonadThrow/MonadCatch for MonadConc exceptions
2015-02-13 00:46:14 +00:00
Michael Walker
ef580d66e8
Use MonadThrow/MonadCatch for MonadSTM exceptions
2015-02-13 00:46:13 +00:00
Michael Walker
9b0cd6ffd3
doTransaction already calls undo on retry/exception
2015-02-13 00:46:12 +00:00
Michael Walker
a305354b65
Add STM exceptions
2015-02-13 00:46:11 +00:00