diff options
Diffstat (limited to 'libgo/runtime/go-select.c')
-rw-r--r-- | libgo/runtime/go-select.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libgo/runtime/go-select.c b/libgo/runtime/go-select.c index 5ea521d..e425aae 100644 --- a/libgo/runtime/go-select.c +++ b/libgo/runtime/go-select.c @@ -533,7 +533,9 @@ mark_all_channels_waiting (struct select_channel* channels, uintptr_t count, uintptr_t j; /* A channel may be selected for both read and write. */ - if (channels[channels[i].dup_index].is_send != is_send) + if (channels[channels[i].dup_index].is_send == is_send) + continue; + else { for (j = channels[i].dup_index + 1; j < i; ++j) { |