about summary refs log tree commit diff stats
path: root/arc/fork.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-08-27 18:23:53 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-08-27 18:23:53 -0700
commite947da75bd926da6d533fd73b352c16c8417b3f6 (patch)
treef31b798b4849da26bf6c5eec921d5e8a7178f17f /arc/fork.mu
parent50bff0c5fb8dc13987fcb4e9bf16432da1544740 (diff)
downloadmu-e947da75bd926da6d533fd73b352c16c8417b3f6.tar.gz
3265
Ah, the reason commit 3258 broke chessboard.mu was that I forgot to
migrate the implementation of 'switch' to 'wait-for-routine-to-block'.
That caused these cascading effects when running chessboard.mu:

a) 'read-event' from real keyboard calls 'switch'

b) 'switch' waits for some other currently running routine to *complete*
rather than just block

c) deadlock unsurprisingly ensues

This was hard to debug because I kept searching for occurrences of
'wait-for-routine' that I'd missed, and didn't realize that 'switch' too
was a form of 'wait-for-routine'. No more; now it's a form of
'wait-for-routine-to-block', possibly the *only* reason to ever call
that instruction outside of tests.
Diffstat (limited to 'arc/fork.mu')
0 files changed, 0 insertions, 0 deletions
ik K. Agaram <vc@akkartik.com> 2015-05-07 12:47:25 -0700 committer Kartik K. Agaram <vc@akkartik.com> 2015-05-07 12:47:25 -0700 1297' href='/akkartik/mu/commit/vimrc.vim?h=main&id=94fa5c95ad9c8beead183bb7c4b88c7c2c7ca6ec'>94fa5c95 ^
1ae4e0d9 ^
b3cdcdd4 ^
b96af395 ^









1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38