Open divan opened 8 years ago
@divan, I tried adding support for buffered channels by adding a new buffer evBuf
for the event IDs. I have made this change from the latest go source tag go1.17beta1
. Though I'm running into a few build errors - compile: invalid argument
and internal compiler error: 'zerorange': panic during regalloc while compiling
.
I'm probably missing something very obvious here, this is my first time messing with the go source. I have some basic familiarity with the channel code from Kavya's great talk on it, but I'm not sure how memory allocation works here. Here is my patch, I used ./make.bash
to build it.
Currently only unbuffered channels are supported. Buffered channels send/recv will not appear in visualization made by gotrace.
That's because buffered and unbuffered channels implemented differently, and in the first case there is no (obvious) way to attach something like EventID for sending/receiving event, which is needed to correlate send/recv events. More details to come.