It is not a one-length buffered channel.  I need to drop because the 
recveiver do heavy work that can't process as quickly as sender.
在2020年11月13日星期五 UTC+8 下午2:36:13<Kurtis Rader> 写道:

> On Thu, Nov 12, 2020 at 9:32 PM 陶青云 <qing...@gmail.com> wrote:
>
>> Thanks. I want the receiver always get the relately new vaule,  I don't 
>> want the sender blocked and I either choose drop the current value or the 
>> first value of the channel. But I don't find a way to safely drop the first 
>> value from the channel.
>
>
> You seem to be talking about a buffered channel of length one. If that is 
> true why are you using a channel? You can instead use a simple var 
> protected by a mutex. If you're talking about a buffered channel with size 
> greater than one it is unclear why a full channel should drop the first 
> entry in the channel rather than multiple (even all) entries in the queue. 
> This seems like an XY problem <https://xyproblem.info/>.
>  
>
>> Maybe like this ?
>>
>
> No, since that "solution" just replaces one race with another.
>
> -- 
> Kurtis Rader
> Caretaker of the exceptional canines Junior and Hank
>

-- 
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/5f5cb0c2-54e9-4d5f-bbc7-43c902615b8fn%40googlegroups.com.

Reply via email to