aboutsummaryrefslogtreecommitdiff
path: root/libgo/runtime/go-select.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/runtime/go-select.c')
-rw-r--r--libgo/runtime/go-select.c4
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)
{