From 2fc7f8c49fc34cd2db65c36400200082a62138a1 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Fri, 20 Feb 2009 18:43:57 +0200 Subject: Dynamic translator stacks are set in series of retries When a client wants nsmux to set several translators on a node using a syntax like ``file,,x,,y'', nsmux sets the first translator on a shadow node mirroring ``file'' and punts a retry to the client. The client (commonly) does the retry and thus control comes back to nsmux, which creates another shadow node and sets the second translator on this node. At the moment translator stacks do not include proxy nodes, i.e. the structure of a dynamic translator stack is: ...---dynamic translator -- shadow node -- dynamic translator ---... --- node.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'node.c') diff --git a/node.c b/node.c index 5f24a5379..f7db74107 100644 --- a/node.c +++ b/node.c @@ -821,11 +821,22 @@ error_t *underlying = p = ports_get_send_right (newpi); *underlying_type = MACH_MSG_TYPE_COPY_SEND; + /**underlying_type = MACH_MSG_TYPE_COPY_SEND;*/ + /**underlying_type = MACH_MSG_TYPE_MOVE_SEND;*/ + LOG_MSG ("node_set_translators.open_port: %ld", (long) *underlying); /*Drop our reference to the port */ ports_port_deref (newpi); + /* + char buf[256]; + char *_buf = buf; + size_t len = 256; + io_read (p, &_buf, &len, 0, len); + LOG_MSG ("node_set_translator: Read from np: '%s'", buf); + */ + /*Return the result of operations (everything should be okay here) */ return err; } /*open_port */ @@ -905,6 +916,6 @@ error_t /*Everything is OK here */ return 0; -} /*node_set_translators */ +} /*node_set_translator */ /*---------------------------------------------------------------------------*/ -- cgit v1.2.3