     ] times
 ] unit-test
 
+! Test non-blocking operation
+[ ] [
+    [
+        2 <count-down> "count-down" set
+
+        utf8 <pipe> &dispose
+        utf8 <pipe> &dispose
+        [
+            [
+                '[
+                    _ stream-read1 drop
+                    "count-down" get count-down
+                ] in-thread
+            ] bi@
+            
+            ! Give the threads enough time to start blocking on
+            ! read
+            1 seconds sleep
+        ]
+        ! At this point, two threads are blocking on read
+        [ [ "Hi" over stream-write stream-flush ] bi@ ]
+        ! At this point, both threads should wake up
+        2bi
+
+        "count-down" get await
+    ] with-destructors
+] unit-test
+
 ! 0 read should not block
 [ f ] [
     [

    ] with-stream
] unit-test

[ { } ] [ { } run-pipeline ] unit-test
[ { f } ] [ { [ f ] } run-pipeline ] unit-test
[ { "Hello" } ] [

    ] with-disposal
] must-fail

! Test writing to a half-open pipe
[ ] [
    1000 [
        utf8 <pipe> [
