concurrency.mailboxes: use unless-disposed.

factor-shell
John Benediktsson 2018-01-20 12:23:32 -08:00
parent f25d7313d6
commit cb89a14ed6
1 changed files with 5 additions and 3 deletions

View File

@ -1,7 +1,8 @@
! Copyright (C) 2005, 2010 Chris Double, Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors concurrency.conditions continuations deques
dlists fry kernel locals sequences threads vocabs.loader ;
destructors dlists fry kernel locals sequences threads
vocabs.loader ;
IN: concurrency.mailboxes
TUPLE: mailbox { threads dlist } { data dlist } ;
@ -64,8 +65,9 @@ M: mailbox mailbox-get-timeout block-if-empty data>> pop-back ;
f swap mailbox-get-timeout? ; inline
: wait-for-close-timeout ( mailbox timeout -- )
over disposed>>
[ 2drop ] [ 2dup wait-for-mailbox wait-for-close-timeout ] if ;
'[
_ 2dup wait-for-mailbox wait-for-close-timeout
] unless-disposed ;
: wait-for-close ( mailbox -- )
f wait-for-close-timeout ;