aboutsummaryrefslogtreecommitdiff
path: root/libgo/runtime/go-rec-big.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/runtime/go-rec-big.c')
-rw-r--r--libgo/runtime/go-rec-big.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libgo/runtime/go-rec-big.c b/libgo/runtime/go-rec-big.c
index 580ccb0..d45e90a 100644
--- a/libgo/runtime/go-rec-big.c
+++ b/libgo/runtime/go-rec-big.c
@@ -20,7 +20,10 @@ __go_receive_big (struct __go_channel *channel, void *val, _Bool for_select)
size_t offset;
if (channel == NULL)
- __go_panic_msg ("receive from nil channel");
+ {
+ /* Block forever. */
+ __go_select (0, 0, NULL, NULL);
+ }
element_size = channel->element_type->__size;
alloc_size = (element_size + sizeof (uint64_t) - 1) / sizeof (uint64_t);