Ensure amb+ is protected with mutex.
This commit is contained in:
@@ -96,6 +96,14 @@
|
||||
(lambda () (set! (,(first (second x)) obj) res))
|
||||
(lambda () (mutex-unlock! mutex))))))))
|
||||
|
||||
(define-syntax with-app
|
||||
(syntax-rules ()
|
||||
((_ (app) body ...)
|
||||
(dynamic-wind
|
||||
(lambda () (mutex-lock! (app-mutex app)))
|
||||
(lambda () body ...)
|
||||
(lambda () (mutex-unlock! (app-mutex app)))))))
|
||||
|
||||
(define-record player
|
||||
(setter cash)
|
||||
(setter display-cash)
|
||||
@@ -2303,6 +2311,7 @@
|
||||
(player-stats p)))))
|
||||
|
||||
(define (get-actions player space)
|
||||
(with-app (*app*)
|
||||
(let ((res '()))
|
||||
(let loop ((a
|
||||
(prolog+meta
|
||||
@@ -2408,7 +2417,7 @@
|
||||
`((,(list-ref *months* space) ?action tom ?value)))))
|
||||
(if a
|
||||
(begin (set! res (cons a res)) (loop (amb+)))
|
||||
res))))
|
||||
res)))))
|
||||
|
||||
(define (normalize-crop crop)
|
||||
(cond ((or (eq? crop 'wheat) (eq? crop 'corn))
|
||||
@@ -2625,24 +2634,8 @@
|
||||
|
||||
;; TODO
|
||||
;; make sure two players can't have the same name
|
||||
;; "your turn to roll" showing up on mobile when on action screen
|
||||
|
||||
;; bug on display for uncle berts farm
|
||||
;; Error: (mailbox-send!) bad argument type - not a mailbox: "redhead91
|
||||
|
||||
;; farmers luck can cause display cash to be out of sync
|
||||
|
||||
;; Uncaught TypeError: Cannot read property 'toFixed' of undefined
|
||||
;; at St (app.0f8d4f4543faaee5dff1.js:1377)
|
||||
;; at app.0f8d4f4543faaee5dff1.js:1457
|
||||
;; at Object.y [as dispatch] (vendors.bef6ac3591b4d9cb3c76.js:8936)
|
||||
;; at app.0f8d4f4543faaee5dff1.js:1226
|
||||
;; at eu (vendors.bef6ac3591b4d9cb3c76.js:12601)
|
||||
;; at WebSocket.pt (app.0f8d4f4543faaee5dff1.js:1127)
|
||||
|
||||
;; Uncaught TypeError: Cannot read property 'krispy kreme' of undefined
|
||||
;; at app.0f8d4f4543faaee5dff1.js:1461
|
||||
;; at Object.y [as dispatch] (vendors.bef6ac3591b4d9cb3c76.js:8936)
|
||||
;; at app.0f8d4f4543faaee5dff1.js:1226
|
||||
;; at eu (vendors.bef6ac3591b4d9cb3c76.js:12601)
|
||||
;; at WebSocket.pt (app.0f8d4f4543faaee5dff1.js:1127)
|
||||
|
||||
Reference in New Issue
Block a user