IN: concurrency.mailboxes.tests USING: concurrency.mailboxes concurrency.count-downs vectors sequences threads tools.test math kernel strings namespaces continuations calendar destructors ; { 1 1 } [ [ integer? ] mailbox-get? ] must-infer-as [ V{ 1 2 3 } ] [ 0 [ mailbox-get swap push ] in-thread [ mailbox-get swap push ] in-thread [ mailbox-get swap push ] in-thread 1 over mailbox-put 2 over mailbox-put 3 swap mailbox-put ] unit-test [ V{ 1 2 3 } ] [ 0 [ [ integer? ] mailbox-get? swap push ] in-thread [ [ integer? ] mailbox-get? swap push ] in-thread [ [ integer? ] mailbox-get? swap push ] in-thread 1 over mailbox-put 2 over mailbox-put 3 swap mailbox-put ] unit-test [ V{ 1 "junk" 3 "junk2" } [ 456 ] ] [ 0 [ [ integer? ] mailbox-get? swap push ] in-thread [ [ integer? ] mailbox-get? swap push ] in-thread [ [ string? ] mailbox-get? swap push ] in-thread [ [ string? ] mailbox-get? swap push ] in-thread 1 over mailbox-put "junk" over mailbox-put [ 456 ] over mailbox-put 3 over mailbox-put "junk2" over mailbox-put mailbox-get ] unit-test "m" set 1 "c" set 1 "d" set [ "c" get await [ "m" get mailbox-get drop ] [ drop "d" get count-down ] recover ] "Mailbox close test" spawn drop [ ] [ "c" get count-down ] unit-test [ ] [ "m" get dispose ] unit-test [ ] [ "d" get 5 seconds await-timeout ] unit-test [ ] [ "m" get dispose ] unit-test "m" set 1 "c" set 1 "d" set [ "c" get await "m" get wait-for-close "d" get count-down ] "Mailbox close test" spawn drop [ ] [ "c" get count-down ] unit-test [ ] [ "m" get dispose ] unit-test [ ] [ "d" get 5 seconds await-timeout ] unit-test [ ] [ "m" get dispose ] unit-test