]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/ui/tools/listener/listener.factor
Debugging threads
[factor.git] / extra / ui / tools / listener / listener.factor
index 9057e1c4bdbe9b0d52cdf84d42b02637ced64588..b09732ed2c9f6c19c37514f4620e127ce6d58d93 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: inspector ui.tools.interactor ui.tools.inspector
-ui.tools.workspace help.markup io io.streams.duplex io.styles
+ui.tools.workspace help.markup io io.styles
 kernel models namespaces parser quotations sequences ui.commands
 ui.gadgets ui.gadgets.editors ui.gadgets.labelled
 ui.gadgets.panes ui.gadgets.buttons ui.gadgets.scrollers
@@ -16,8 +16,8 @@ TUPLE: listener-gadget input output stack ;
     <scrolling-pane> g-> set-listener-gadget-output
     <scroller> "Output" <labelled-gadget> 1 track, ;
 
-: <listener-stream> ( listener -- stream )
-    [ input>> ] [ output>> <pane-stream> ] bi <duplex-stream> ;
+: listener-streams ( listener -- input output )
+    [ input>> ] [ output>> <pane-stream> ] bi ;
 
 : <listener-input> ( listener -- gadget )
     output>> <pane-stream> <interactor> ;
@@ -125,7 +125,7 @@ TUPLE: stack-display ;
     stack-display new
     g workspace-listener swap [
         dup <toolbar> f track,
-        listener-gadget-stack [ stack. ]
+        stack>> [ [ stack. ] curry try ]
         t "Data stack" <labelled-pane> 1 track,
     ] { 0 1 } build-track ;
 
@@ -143,13 +143,13 @@ M: stack-display tool-scroller
     swap show-tool inspect-object ;
 
 : listener-thread ( listener -- )
-    dup <listener-stream> [
-        [ [  ui-listener-hook ] curry  listener-hook set ]
-        [ [     ui-error-hook ] curry     error-hook set ]
+    dup listener-streams [
+        [ [ ui-listener-hook ] curry listener-hook set ]
+        [ [ ui-error-hook ] curry error-hook set ]
         [ [ ui-inspector-hook ] curry inspector-hook set ] tri
         welcome.
         listener
-    ] with-stream* ;
+    ] with-streams* ;
 
 : start-listener-thread ( listener -- )
     [