Places: allow channels in compound data communications

This commit is contained in:
Kevin Tew 2010-08-24 15:21:57 -06:00
parent 947be220e6
commit 19a00d887e
2 changed files with 8 additions and 2 deletions

View File

@ -32,7 +32,9 @@
(vector (vector-ref x 0) 'b (vector-ref x 1))
#s((abuilding 1 building 2) 6 'utah 'no))
(define pc1 (place-channel-recv ch))
(pcrss pc1 (string-append x "-ok")))
(pcrss pc1 (string-append x "-ok"))
(define pc3 (first (place-channel-recv ch)))
(pcrss pc3 (string-append x "-ok3")))
)
END
"pct1.ss")
@ -57,6 +59,9 @@ END
(define-values (pc1 pc2) (place-channel))
(place-channel-send pl pc2)
(test "Testing-ok" place-channel-send/recv pc1 "Testing")
(define-values (pc3 pc4) (place-channel))
(place-channel-send pl (list pc4))
(test "Testing-ok3" place-channel-send/recv pc3 "Testing")
(place-wait pl)
)

View File

@ -1084,6 +1084,7 @@ void force_hash_worker(Scheme_Object *so, Scheme_Hash_Table *ht)
case scheme_byte_string_type:
case scheme_unix_path_type:
case scheme_symbol_type:
case scheme_place_bi_channel_type:
break;
case scheme_pair_type:
{
@ -1117,7 +1118,7 @@ void force_hash_worker(Scheme_Object *so, Scheme_Hash_Table *ht)
break;
case scheme_resolved_module_path_type:
default:
scheme_log_abort("cannot copy object");
scheme_log_abort("cannot force hash");
abort();
break;
}