Scheme_Object *scheme_place_recv(int argc, Scheme_Object *args[]) { if (argc == 1) { Scheme_Object *mso; Scheme_Place_Bi_Channel *ch; if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_place_type)) { ch = (Scheme_Place_Bi_Channel *) ((Scheme_Place *) args[0])->channel; } else if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_place_bi_channel_type)) { ch = (Scheme_Place_Bi_Channel *) args[0]; } else { ch = NULL; scheme_wrong_type("place-channel-recv", "place-channel", 0, argc, args); } { void *msg_memory = NULL; mso = scheme_place_async_recv((Scheme_Place_Async_Channel *) ch->recvch, &msg_memory); return scheme_places_deserialize(mso, msg_memory); } } else { scheme_wrong_count_m("place-channel-recv", 1, 1, argc, args, 0); } return scheme_true; }
Scheme_Object *scheme_place_recv(int argc, Scheme_Object *args[]) { if (argc == 1) { Scheme_Place_Bi_Channel *ch; if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_place_type)) { ch = (Scheme_Place_Bi_Channel *) ((Scheme_Place *) args[0])->channel; } else if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_place_bi_channel_type)) { ch = (Scheme_Place_Bi_Channel *) args[0]; } else { ch = NULL; scheme_wrong_type("place-channel-recv", "place-channel", 0, argc, args); } return scheme_place_async_recv((Scheme_Place_Async_Channel *) ch->recvch); } else { scheme_wrong_count_m("place-channel-recv", 1, 1, argc, args, 0); } return scheme_true; }