mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.
merge from trunk. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									26474005b0
								
							
						
					
					
						commit
						5fbfcbac15
					
				
					 2 changed files with 19 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Fri Dec  1 17:01:49 2006  NAKAMURA Usaku  <usa@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.
 | 
			
		||||
	  merge from trunk.
 | 
			
		||||
 | 
			
		||||
Fri Dec  1 16:31:53 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>
 | 
			
		||||
 | 
			
		||||
	* ext/tk/tcltklib.c: shouldn't run the killed thread at callback.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								gc.c
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								gc.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -424,7 +424,7 @@ static unsigned int STACK_LEVEL_MAX = 65535;
 | 
			
		|||
unsigned int _stacksize = 262144;
 | 
			
		||||
# define STACK_LEVEL_MAX (_stacksize - 4096)
 | 
			
		||||
# undef HAVE_GETRLIMIT
 | 
			
		||||
#elif defined(HAVE_GETRLIMIT)
 | 
			
		||||
#elif defined(HAVE_GETRLIMIT) || defined(_WIN32)
 | 
			
		||||
static unsigned int STACK_LEVEL_MAX = 655300;
 | 
			
		||||
#else
 | 
			
		||||
# define STACK_LEVEL_MAX 655300
 | 
			
		||||
| 
						 | 
				
			
			@ -1542,6 +1542,19 @@ void ruby_init_stack(VALUE *addr
 | 
			
		|||
            STACK_LEVEL_MAX = (rlim.rlim_cur - space) / sizeof(VALUE);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#elif defined _WIN32
 | 
			
		||||
    {
 | 
			
		||||
	MEMORY_BASIC_INFORMATION mi;
 | 
			
		||||
	DWORD size;
 | 
			
		||||
	DWORD space;
 | 
			
		||||
 | 
			
		||||
	if (VirtualQuery(&mi, &mi, sizeof(mi))) {
 | 
			
		||||
	    size = (char *)mi.BaseAddress - (char *)mi.AllocationBase;
 | 
			
		||||
	    space = size / 5;
 | 
			
		||||
	    if (space > 1024*1024) space = 1024*1024;
 | 
			
		||||
	    STACK_LEVEL_MAX = (size - space) / sizeof(VALUE);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue