mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	In class StreamRequestHandler, make the default buffering for rfile
and wfile class variables (that the instance can also override). Change the default for rfile to buffered, because that seems to make a big difference in performance on some platforms. An anti-patch is needed to revert the effect in CGIHTTPServer.py which I'll check in momentarily.
This commit is contained in:
		
							parent
							
								
									b709df3810
								
							
						
					
					
						commit
						01fed4d4e6
					
				
					 1 changed files with 12 additions and 2 deletions
				
			
		|  | @ -412,10 +412,20 @@ class StreamRequestHandler(BaseRequestHandler): | |||
| 
 | ||||
|     """Define self.rfile and self.wfile for stream sockets.""" | ||||
| 
 | ||||
|     # Default buffer sizes for rfile, wfile. | ||||
|     # We default rfile to buffered because otherwise it could be | ||||
|     # really slow for large data (a getc() call per byte); we make | ||||
|     # wfile unbuffered because (a) often after a write() we want to | ||||
|     # read and we need to flush the line; (b) big writes to unbuffered | ||||
|     # files are typically optimized by stdio even when big reads | ||||
|     # aren't. | ||||
|     rbufsize = -1 | ||||
|     wbufsize = 0 | ||||
| 
 | ||||
|     def setup(self): | ||||
|         self.connection = self.request | ||||
|         self.rfile = self.connection.makefile('rb', 0) | ||||
|         self.wfile = self.connection.makefile('wb', 0) | ||||
|         self.rfile = self.connection.makefile('rb', self.rbufsize) | ||||
|         self.wfile = self.connection.makefile('wb', self.wbufsize) | ||||
| 
 | ||||
|     def finish(self): | ||||
|         self.wfile.flush() | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum