]> gitweb.factorcode.org Git - factor.git/commitdiff
concurrency.mailboxes: mailboxes should not be disposable, since futures and promises...
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 19 Feb 2010 08:45:43 +0000 (21:45 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 19 Feb 2010 08:45:43 +0000 (21:45 +1300)
basis/concurrency/mailboxes/mailboxes-tests.factor
basis/concurrency/mailboxes/mailboxes.factor

index 56d579d6c71cd987a10ebb8ccd22f7fb77ef7c4a..3435a0145580541124074424c63601eabeaf25fb 100644 (file)
@@ -42,40 +42,6 @@ IN: concurrency.mailboxes.tests
     mailbox-get\r
 ] unit-test\r
 \r
-<mailbox> "m" set\r
-\r
-1 <count-down> "c" set\r
-1 <count-down> "d" set\r
-\r
-[\r
-    "c" get await\r
-    [ "m" get mailbox-get drop ]\r
-    [ drop "d" get count-down ] recover\r
-] "Mailbox close test" spawn drop\r
-\r
-[ ] [ "c" get count-down ] unit-test\r
-[ ] [ "m" get dispose ] unit-test\r
-[ ] [ "d" get 5 seconds await-timeout ] unit-test\r
-\r
-[ ] [ "m" get dispose ] unit-test\r
-\r
-<mailbox> "m" set\r
-\r
-1 <count-down> "c" set\r
-1 <count-down> "d" set\r
-\r
-[\r
-    "c" get await\r
-    "m" get wait-for-close\r
-    "d" get count-down\r
-] "Mailbox close test" spawn drop\r
-\r
-[ ] [ "c" get count-down ] unit-test\r
-[ ] [ "m" get dispose ] unit-test\r
-[ ] [ "d" get 5 seconds await-timeout ] unit-test\r
-\r
-[ ] [ "m" get dispose ] unit-test\r
-\r
 [ { "foo" "bar" } ] [\r
     <mailbox>\r
     "foo" over mailbox-put\r
@@ -86,4 +52,3 @@ IN: concurrency.mailboxes.tests
 [\r
     <mailbox> 1 seconds mailbox-get-timeout\r
 ] [ wait-timeout? ] must-fail-with\r
-    \r
index 7834a2a3e1b4f1be0100645b55260e246b0d2b2c..06da3b34a6161afd57946a8f84f691cd3de682fd 100644 (file)
@@ -1,17 +1,17 @@
-! Copyright (C) 2005, 2008 Chris Double, Slava Pestov.\r
+! Copyright (C) 2005, 2010 Chris Double, Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: dlists deques threads sequences continuations\r
-destructors namespaces math quotations words kernel\r
-arrays assocs init system concurrency.conditions accessors\r
-debugger debugger.threads locals fry ;\r
+USING: dlists deques threads sequences continuations namespaces\r
+math quotations words kernel arrays assocs init system\r
+concurrency.conditions accessors debugger debugger.threads\r
+locals fry ;\r
 IN: concurrency.mailboxes\r
 \r
-TUPLE: mailbox < disposable threads data ;\r
-\r
-M: mailbox dispose* threads>> notify-all ;\r
+TUPLE: mailbox threads data ;\r
 \r
 : <mailbox> ( -- mailbox )\r
-    mailbox new-disposable <dlist> >>threads <dlist> >>data ;\r
+    mailbox new\r
+        <dlist> >>threads\r
+        <dlist> >>data ;\r
 \r
 : mailbox-empty? ( mailbox -- bool )\r
     data>> deque-empty? ;\r
@@ -24,14 +24,12 @@ M: mailbox dispose* threads>> notify-all ;
     [ threads>> ] dip "mailbox" wait ;\r
 \r
 :: block-unless-pred ( mailbox timeout pred: ( message -- ? ) -- )\r
-    mailbox check-disposed\r
     mailbox data>> pred dlist-any? [\r
         mailbox timeout wait-for-mailbox\r
         mailbox timeout pred block-unless-pred\r
     ] unless ; inline recursive\r
 \r
 : block-if-empty ( mailbox timeout -- mailbox )\r
-    over check-disposed\r
     over mailbox-empty? [\r
         2dup wait-for-mailbox block-if-empty\r
     ] [\r