void beginflush() { if(writing)return; write_n=sendbuffer.BeginDequeue(); if(write_n==-1) return; writing=true; st.BeginWrite(sendbuffer.GetPointer(write_n), Stream::Callback([this](void* v, Stream* s) { sendbuffer.EndDequeue(write_n); writing=false; beginflush(); })); }