concurrency repairs

original commit: 3a99e9e82c30ef0a2693b444441c1fd3d87c0e34
This commit is contained in:
Matthew Flatt 2010-09-06 09:17:50 -06:00
parent 96310b96ca
commit 79d46e5164
6 changed files with 17 additions and 13 deletions

View File

@ -208,7 +208,7 @@
((done #t) #f #f)))
init-val (list* 'single 'vertical-label style))]
[p (make-object horizontal-pane% f)])
(send p set-alignment 'right 'center)
(send p set-alignment 'right 'center)
(send f stretchable-height #f)
(ok-cancel
(lambda () (make-object button% "OK" p (done #t) '(border)))

View File

@ -28,7 +28,7 @@
(let ([s (atomically
(let ([s (or close-sema (make-semaphore))])
(unless close-sema (set! close-sema s))
s))])
(semaphore-peek-evt s)))])
(super show on?)
(yield s)
(void))

View File

@ -355,7 +355,7 @@
(when v (handle-event v))
(yield evt))))]
[else
(sync e)]))]))
(sync evt)]))]))
(define event-dispatch-handler (make-parameter void))
(define (main-eventspace? e)

View File

@ -3,6 +3,7 @@
ffi/unsafe
"../../syntax.rkt"
"../common/queue.rkt"
"../../lock.rkt"
"types.rkt"
"utils.rkt"
"frame.rkt")
@ -51,9 +52,10 @@
(unless on?
(set! dialog-level 0))
(unless on?
(when close-sema
(semaphore-post close-sema)
(set! close-sema #f)))
(atomically
(when close-sema
(semaphore-post close-sema)
(set! close-sema #f))))
(super direct-show on?))
(define/override (center dir wrt)
@ -66,9 +68,11 @@
(define/override (show on?)
(if on?
(unless close-sema
(let ([s (make-semaphore)])
(set! close-sema s)
(super show on?)
(yield s)))
(let ([s (atomically
(let ([s (or close-sema (make-semaphore))])
(unless close-sema (set! close-sema s))
(semaphore-peek-evt s)))])
(super show on?)
(yield s)
(void))
(super show on?))))

View File

@ -4759,7 +4759,7 @@
(when (and resized? s-admin)
(send s-admin resized #f))
(on-reflow)))))))))))
(def/public (on-reflow) (void))

View File

@ -241,7 +241,7 @@
;; Exact
(set! dy (inexact->exact dy))))
(when value
(set-value value)
(unless (string=? value "")