Comments (3)
I was aware this issue, and it can be easily fixed.
let us think for another question: under which scenario it sounds reasonable for 2 concurrent writers to write on a single stream, assume there is a condition where 2 concurrent writer exists, can they split into two streams?
from smux.
Actually, concurrent writing on a single connection leads to indeterministic frame interleaving, I may write a comment for Write()
function to state that issue.
And for this particular issue, I just replaced with atomic ops to suppress the error(not to fix).
from smux.
let us think for another question: under which scenario it sounds reasonable for 2 concurrent writers to write on a single stream, assume there is a condition where 2 concurrent writer exists, can they split into two streams?
I agree, the situation is a little unnatural. In my case, it was in a test program (an echo server), where one goroutine was echoing input, and another goroutine was sending a periodic heartbeat message. I can easily redesign the program to avoid concurrent writes. I mention this only because the contract for net.Conn
says "multiple goroutines may invoke methods on a Conn simultaneously."
Anyway thanks, 182ea54 makes the data race message disappear.
from smux.
Related Issues (20)
- 修正一处细节, HOT 4
- Blocked streams under heavy load HOT 5
- smux multiplexes multiple TCP connections?
- Stream does not return net.Error for timeouts
- alloc module memory release HOT 1
- What's the difference between version1 and version2 in smux.Config? HOT 4
- cmdFIN and cmdPSH race condition HOT 2
- 如何检测一个 Conn 是否 muxing?
- proposal: add option to not close idle session HOT 1
- 一个stream不读数据,另一端stream一直写,直到缓冲满。这个时候绑定在conn上的Session将不能执行任何指令。 HOT 4
- 写超时,应用层选择重发 HOT 1
- 看了好多遍都没看懂,这个地方没有错误吗 HOT 15
- TestGetDieCh() strange behaviour seems cause by racing
- 建议增加一个 Session.GetCloseChan() 的函数,可以使用select快速得知连接已经被断开 HOT 6
- An extra character appears when using io.Copy
- 想问下协议版本1和2有什么区别 HOT 5
- 能否支持自动匹配客户端版本 (version 1,2) HOT 2
- Multiplexing over SCTP unordered mode HOT 2
- OpenStream似乎有并行性能问题
- 当并发newStream 较高时,recvLoop存在内存泄露 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smux.