mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 10:22:45 +00:00 
			
		
		
		
	LibTLS: Flush some packets as soon as more packets are written
This seems like a better compromise between throughput and latency, and it doesn't _really_ affect the performance, so let's just compromise.
This commit is contained in:
		
							parent
							
								
									b69abb3626
								
							
						
					
					
						commit
						f9cffda0e0
					
				
					 1 changed files with 14 additions and 3 deletions
				
			
		|  | @ -34,11 +34,22 @@ namespace TLS { | |||
| void TLSv12::write_packet(ByteBuffer& packet) | ||||
| { | ||||
|     m_context.tls_buffer.append(packet.data(), packet.size()); | ||||
|     if (!m_has_scheduled_write_flush && m_context.connection_status > ConnectionStatus::Disconnected) { | ||||
|     if (m_context.connection_status > ConnectionStatus::Disconnected) { | ||||
|         if (!m_has_scheduled_write_flush) { | ||||
| #ifdef TLS_DEBUG | ||||
|         dbg() << "Scheduling write of " << m_context.tls_buffer.size(); | ||||
|             dbg() << "Scheduling write of " << m_context.tls_buffer.size(); | ||||
| #endif | ||||
|         deferred_invoke([this](auto&) { write_into_socket(); }); | ||||
|             deferred_invoke([this](auto&) { write_into_socket(); }); | ||||
|             m_has_scheduled_write_flush = true; | ||||
|         } else { | ||||
|             // multiple packet are available, let's flush some out
 | ||||
| #ifdef TLS_DEBUG | ||||
|             dbg() << "Flushing scheduled write of " << m_context.tls_buffer.size(); | ||||
| #endif | ||||
|             write_into_socket(); | ||||
|             // the deferred invoke is still in place
 | ||||
|             m_has_scheduled_write_flush = true; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AnotherTest
						AnotherTest