places: repair clean-up after serialize failure
This commit is contained in:
parent
f7c39512ab
commit
c7388f9fa8
|
@ -8,18 +8,20 @@
|
||||||
(for/list ((n (in-naturals)))
|
(for/list ((n (in-naturals)))
|
||||||
(place-channel-get in))))
|
(place-channel-get in))))
|
||||||
|
|
||||||
(define i
|
(define fds
|
||||||
(case mode
|
(case mode
|
||||||
[("tcp")
|
[("tcp")
|
||||||
(define PORT 12346)
|
(define PORT 12346)
|
||||||
(define listener (tcp-listen PORT 100 #t))
|
(define listener (tcp-listen PORT 100 #t))
|
||||||
(define-values (i o) (tcp-connect "127.0.0.1" PORT))
|
(define-values (i o) (tcp-connect "127.0.0.1" PORT))
|
||||||
i]
|
(list i o)]
|
||||||
[else
|
[else
|
||||||
(current-input-port)]))
|
(list (current-input-port)
|
||||||
|
(current-output-port))]))
|
||||||
|
|
||||||
(for ((n (in-naturals)))
|
(for ((n (in-naturals)))
|
||||||
(printf "sending port ~a\n" n)
|
(printf "sending port ~a\n" n)
|
||||||
(place-channel-put out i)))
|
(place-channel-put out fds)))
|
||||||
|
|
||||||
(module+ test
|
(module+ test
|
||||||
(require racket/system
|
(require racket/system
|
||||||
|
|
|
@ -820,7 +820,7 @@ static void bad_place_message2(Scheme_Object *so, Scheme_Object *o, int can_rais
|
||||||
if (v) {
|
if (v) {
|
||||||
if (SCHEME_VEC_ELS(v)[0]) {
|
if (SCHEME_VEC_ELS(v)[0]) {
|
||||||
l = SCHEME_VEC_ELS(v)[0];
|
l = SCHEME_VEC_ELS(v)[0];
|
||||||
while (SCHEME_PAIRP(l)) {
|
while (SCHEME_RPAIRP(l)) {
|
||||||
rktio_fd_close_transfer(unbox_fd(SCHEME_CAR(l)));
|
rktio_fd_close_transfer(unbox_fd(SCHEME_CAR(l)));
|
||||||
l = SCHEME_CDR(l);
|
l = SCHEME_CDR(l);
|
||||||
SCHEME_USE_FUEL(1);
|
SCHEME_USE_FUEL(1);
|
||||||
|
@ -828,7 +828,7 @@ static void bad_place_message2(Scheme_Object *so, Scheme_Object *o, int can_rais
|
||||||
}
|
}
|
||||||
if (SCHEME_VEC_ELS(v)[1]) {
|
if (SCHEME_VEC_ELS(v)[1]) {
|
||||||
l = SCHEME_VEC_ELS(v)[1];
|
l = SCHEME_VEC_ELS(v)[1];
|
||||||
while (SCHEME_PAIRP(l)) {
|
while (SCHEME_RPAIRP(l)) {
|
||||||
rktio_fd_close_transfer(unbox_fd(SCHEME_CAR(l)));
|
rktio_fd_close_transfer(unbox_fd(SCHEME_CAR(l)));
|
||||||
l = SCHEME_CDR(l);
|
l = SCHEME_CDR(l);
|
||||||
SCHEME_USE_FUEL(1);
|
SCHEME_USE_FUEL(1);
|
||||||
|
@ -841,7 +841,7 @@ static void bad_place_message2(Scheme_Object *so, Scheme_Object *o, int can_rais
|
||||||
|
|
||||||
static void push_duped_fd(Scheme_Object **fd_accumulators, intptr_t slot, rktio_fd_transfer_t *dupfdt) {
|
static void push_duped_fd(Scheme_Object **fd_accumulators, intptr_t slot, rktio_fd_transfer_t *dupfdt) {
|
||||||
Scheme_Object *tmp;
|
Scheme_Object *tmp;
|
||||||
Scheme_Vector *v;
|
Scheme_Vector *v;
|
||||||
if (fd_accumulators) {
|
if (fd_accumulators) {
|
||||||
if (!*fd_accumulators) {
|
if (!*fd_accumulators) {
|
||||||
tmp = scheme_make_vector(2, scheme_null);
|
tmp = scheme_make_vector(2, scheme_null);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user