! Copyright (C) 2005 Chris Double. All Rights Reserved.
! See http://factorcode.org/license.txt for BSD license.
USING: serialize sequences concurrency.messaging threads io
-io.servers.connection io.encodings.binary
+io.servers.connection io.encodings.binary assocs init
arrays namespaces kernel accessors ;
FROM: io.sockets => host-name <inet> with-client ;
IN: concurrency.distributed
+<PRIVATE
+
+: registered-processes ( -- hash )
+ \ registered-processes get-global ;
+
+PRIVATE>
+
+: register-process ( name process -- )
+ swap registered-processes set-at ;
+
+: unregister-process ( name -- )
+ registered-processes delete-at ;
+
+: get-process ( name -- process )
+ dup registered-processes at [ ] [ thread ] ?if ;
+
SYMBOL: local-node
: handle-node-client ( -- )
: stop-node ( node -- )
f swap send-remote-message ;
+
+[
+ H{ } clone \ registered-processes set-global
+] "remote-thread-registry" add-init-hook
+
+
! Copyright (C) 2006 Chris Double.
! See http://factorcode.org/license.txt for BSD license.
-USING: help.syntax help.markup concurrency.messaging.private
+USING: help.syntax help.markup
threads kernel arrays quotations strings ;
IN: concurrency.messaging
receive [\r
data>> swap call\r
] keep reply-synchronous ; inline\r
-\r
-<PRIVATE\r
-\r
-: registered-processes ( -- hash )\r
- \ registered-processes get-global ;\r
-\r
-PRIVATE>\r
-\r
-: register-process ( name process -- )\r
- swap registered-processes set-at ;\r
-\r
-: unregister-process ( name -- )\r
- registered-processes delete-at ;\r
-\r
-: get-process ( name -- process )\r
- dup registered-processes at [ ] [ thread ] ?if ;\r
-\r
-\ registered-processes [ H{ } clone ] initialize\r