The full code can be seen in this diff:

https://github.com/urandom/go/commit/d10ccdd907dac690bfcb31df1115ce1508775458

The just of it is, I've added an extra field to a struct (the chan) of type 
unsafe.Pointer. The value is then copied (allegedly) to a target pointer in 
chanrecv using typedmemmove. The types of both pointers are the same, as 
defined by the chan's elemtype



On Monday, June 8, 2020 at 3:12:18 AM UTC+3, keith....@gmail.com wrote:
>
> Showing us some code would really help. It's hard to understand what you 
> are doing from this brief description. Also, where does the SIGBUS occur? 
> What pc, and what address?
>
> What types are you passing as the first argument to typedmemmove? Where 
> did you get them from?
>
> This is a fine question for golang-dev, but don't expect a whole lot of 
> help - reaching into the runtime to call typedmemmove is very unsupported.
>
> On Sunday, June 7, 2020 at 10:02:21 AM UTC-7, Michael Jones wrote:
>>
>> Thank you. I now officially know that I don’t understand. Sorry. 
>>
>> On Sun, Jun 7, 2020 at 7:54 AM Viktor Kojouharov <vkojo...@gmail.com> 
>> wrote:
>>
>>> The pointer is being copied via typedmemmove, which itself calls 
>>> memmove, which, according to its documentation, copies bytes from the 
>>> source to the destination. Not sure why that would be impossible, 
>>> considering it does work for some code (the source pointer preserves its 
>>> data)
>>>
>>> Not sure what you mean by "copied via unsafe". Also, the source pointer 
>>> never goes out of scope. It's part of a struct that is passed to the 
>>> function that calls typedmemmove, and its lifetime is more or less static. 
>>> So while the destination pointers go out of scope, the source one never 
>>> does.
>>>
>>>
>>> On Sunday, June 7, 2020 at 4:45:40 PM UTC+3, Michael Jones wrote:
>>>>
>>>> Do you mean that you have a problem with the value of the pointer? That 
>>>> is "copying the pointer." This seems impossible.
>>>>
>>>> Attempting to access through a pointer copied via unsafe is (generally) 
>>>> inviting doom, and seems highly possible. The instant the last pointer to 
>>>> that data goes out of scope the address range occupied by the formerly 
>>>> pointed to items is formally inaccessible. Using unsafe to keep a shadow 
>>>> copy of the address and then poking around is quite likely to fail, and 
>>>> even when it does not, it is quite likely to be meaningless. (random data 
>>>> from some other use).
>>>>
>>>> If I misunderstood, please forgive me.
>>>>
>>>> On Sun, Jun 7, 2020 at 6:15 AM Viktor Kojouharov <vkojo...@gmail.com> 
>>>> wrote:
>>>>
>>>>> p.s. should such questions be posted in golang-dev, since it deals 
>>>>> with runtime internals?
>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "golang-nuts" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to golan...@googlegroups.com.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/golang-nuts/71d7fb5c-3ef5-4611-b9ce-299f7b90945eo%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/golang-nuts/71d7fb5c-3ef5-4611-b9ce-299f7b90945eo%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>
>>>>
>>>> -- 
>>>>
>>>> *Michael T. jonesmichae...@gmail.com*
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to golan...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/golang-nuts/fa18bf7e-8965-4917-9d81-00a8f43289c3o%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/golang-nuts/fa18bf7e-8965-4917-9d81-00a8f43289c3o%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
>>
>> *Michael T. jonesmichae...@gmail.com*
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/aa037e65-0e2a-47d6-b35c-8e80fc3a8000o%40googlegroups.com.

Reply via email to