1 /* go-send-nb-big.c -- nonblocking send of something big on a channel.
3 Copyright 2009 The Go Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style
5 license that can be found in the LICENSE file. */
12 __go_send_nonblocking_big (struct __go_channel* channel, const void *val)
17 alloc_size = ((channel->element_size + sizeof (uint64_t) - 1)
20 if (!__go_send_nonblocking_acquire (channel))
23 offset = channel->next_store * alloc_size;
24 __builtin_memcpy (&channel->data[offset], val, channel->element_size);
26 __go_send_release (channel);