rem: scheme_post_sema_all(ip->input_giveup);
add: if (ip->input_giveup) scheme_post_sema_all(ip->input_giveup);
context: static void remove_extra(void *ip_v){  Scheme_Input_Port *ip = (Scheme_Input_Port *)SCHEME_CAR(ip_v);  Scheme_Object *v = SCHEME_CDR(ip_v), *ll, *prev;  prev = NULL;  for (ll = ip->input_extras; ll; prev = ll, ll = SCHEME_CDR(ll)) {    if (SAME_OBJ(ll, SCHEME_CDR(v))) {      if (prev)	SCHEME_CDR(prev) = SCHEME_CDR(ll);      else	ip->input_extras = SCHEME_CDR(ll);      SCHEME_CDR(ll) = NULL;      break;    }  }  /* Tell the main commit thread to reset */  scheme_post_sema_all(ip->input_giveup);}