Better error recovery for set-model
parent
8e9ca923b7
commit
73e1b4c5e2
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2006, 2008 Slava Pestov.
|
! Copyright (C) 2006, 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors generic kernel math sequences arrays assocs
|
USING: accessors generic kernel math sequences arrays assocs
|
||||||
alarms calendar math.order ;
|
alarms calendar math.order continuations fry ;
|
||||||
IN: models
|
IN: models
|
||||||
|
|
||||||
TUPLE: model < identity-tuple
|
TUPLE: model < identity-tuple
|
||||||
|
@ -68,10 +68,9 @@ GENERIC: model-changed ( model observer -- )
|
||||||
drop ;
|
drop ;
|
||||||
|
|
||||||
: with-locked-model ( model quot -- )
|
: with-locked-model ( model quot -- )
|
||||||
swap
|
[ '[ _ t >>locked? @ ] ]
|
||||||
t >>locked?
|
[ drop '[ _ f >>locked? drop ] ]
|
||||||
slip
|
2bi [ ] cleanup ; inline
|
||||||
f >>locked? drop ; inline
|
|
||||||
|
|
||||||
GENERIC: update-model ( model -- )
|
GENERIC: update-model ( model -- )
|
||||||
|
|
||||||
|
@ -84,7 +83,7 @@ M: model update-model drop ;
|
||||||
dup locked?>> [
|
dup locked?>> [
|
||||||
2drop
|
2drop
|
||||||
] [
|
] [
|
||||||
dup [
|
[
|
||||||
swap >>value
|
swap >>value
|
||||||
[ update-model ] [ notify-connections ] bi
|
[ update-model ] [ notify-connections ] bi
|
||||||
] with-locked-model
|
] with-locked-model
|
||||||
|
|
Loading…
Reference in New Issue