mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Improve stack rlimit code in smtio.py
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
		
							parent
							
								
									719e29404a
								
							
						
					
					
						commit
						79075d123f
					
				
					 1 changed files with 8 additions and 8 deletions
				
			
		|  | @ -31,16 +31,16 @@ from threading import Thread | |||
| # does not run out of stack frames when parsing large expressions | ||||
| if os.name == "posix": | ||||
|     smtio_reclimit = 64 * 1024 | ||||
|     smtio_stacksize = 128 * 1024 * 1024 | ||||
|     smtio_stacklimit = resource.RLIM_INFINITY | ||||
|     if os.uname().sysname == "Darwin": | ||||
|         # MacOS has rather conservative stack limits | ||||
|         smtio_stacksize = 16 * 1024 * 1024 | ||||
|         smtio_stacklimit = resource.getrlimit(resource.RLIMIT_STACK)[1] | ||||
|     if sys.getrecursionlimit() < smtio_reclimit: | ||||
|         sys.setrecursionlimit(smtio_reclimit) | ||||
|     if resource.getrlimit(resource.RLIMIT_STACK)[0] < smtio_stacksize: | ||||
|         resource.setrlimit(resource.RLIMIT_STACK, (smtio_stacksize, smtio_stacklimit)) | ||||
| 
 | ||||
|     smtio_stacksize = 128 * 1024 * 1024 | ||||
|     current_rlimit_stack = resource.getrlimit(resource.RLIMIT_STACK) | ||||
|     if current_rlimit_stack[0] != resource.RLIM_INFINITY: | ||||
|         if current_rlimit_stack[1] != resource.RLIM_INFINITY: | ||||
|             smtio_stacksize = min(smtio_stacksize, smtio_stacklimit) | ||||
|         if current_rlimit_stack[0] < smtio_stacksize: | ||||
|             resource.setrlimit(resource.RLIMIT_STACK, (smtio_stacksize, current_rlimit_stack[1])) | ||||
| 
 | ||||
| 
 | ||||
| # currently running solvers (so we can kill them) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue