private Push Push(Push push, TimeSpan?timeout) { activePushes[push.message.@ref] = push; push.timerId = socket.opts.delayedExecutor.Execute( () => { push.TriggerTimeout(); CleanUp(push.message.@ref); }, timeout ?? socket.opts.timeout); if (!socket.Push(push.message)) { sendBuffer.Add(push.message); } return(push); }