On Sat, 2009-11-14 at 10:28 +1100, Jason Cox wrote:
> I have changed the setting for both rlim_cur and rlim_max from 300 to
> 30000
> curious though is that the following section of code seems to set it to
> 40000000 and then over write it to 300 
> 
> Jason
> 
> 
> 
> #if defined( __CYGWIN__ ) || defined( __CYGWIN32__ ) ||
> defined( _MSC_VER )
>     // the next bit crashes Cygwin for me - DCL
>     // MSVC does not have the function or variable type defined - BRF
> #else
>     // set mem allocation limit.  Reason: occasionally the triangle()
>     // routine can blow up and allocate memory forever.  We'd like
>     // this process to die before things get out of hand so we can try
>     // again with a smaller interior angle limit.
>     int result;
>     struct rlimit limit;
>     limit.rlim_cur = 40000000;
>     limit.rlim_max = 40000000;
> 
> #if 0
>     result = setrlimit( RLIMIT_DATA, &limit );
>     cout << "result of setting mem limit = " << result << endl;
>     result = setrlimit( RLIMIT_STACK, &limit );
>     cout << "result of setting mem limit = " << result << endl;
>     result = setrlimit( RLIMIT_CORE, &limit );
>     cout << "result of setting mem limit = " << result << endl;
>     result = setrlimit( RLIMIT_RSS, &limit );
>     cout << "result of setting mem limit = " << result << endl;
> #endif
> 
>     // cpu time limit since occassionally the triangulator can go into
>     // an infinite loop.
>     limit.rlim_cur = 300;      // seconds
>     limit.rlim_max = 300;      // seconds
>     result = setrlimit( RLIMIT_CPU, &limit );
>     cout << "result of setting mem limit = " << result << endl;
> #endif  // end of stuff that crashes Cygwin
> 
> 

The rlimits are there (as I understand it) for the case where we are
automatically batch generating the world, and a stuck tile would go
un-noticed for extended periods of time.

If your not running where you want to rlimit just comment the whole mess
out like this:

@@ -1178,12 +1178,12 @@ int main(int argc, char **argv) {
     // routine can blow up and allocate memory forever.  We'd like
     // this process to die before things get out of hand so we can try
     // again with a smaller interior angle limit.
+#if 0
     int result;
     struct rlimit limit;
    limit.rlim_cur = 40000000;
    limit.rlim_max = 40000000;
 
-#if 0
     result = setrlimit( RLIMIT_DATA, &limit );
     cout << "result of setting mem limit = " << result << endl;
     result = setrlimit( RLIMIT_STACK, &limit );
@@ -1192,14 +1192,14 @@ int main(int argc, char **argv) {
     cout << "result of setting mem limit = " << result << endl;
     result = setrlimit( RLIMIT_RSS, &limit );
     cout << "result of setting mem limit = " << result << endl;
-#endif
 
     // cpu time limit since occassionally the triangulator can go into
     // an infinite loop.
    limit.rlim_cur = 300;       // seconds
    limit.rlim_max = 300;       // seconds
     result = setrlimit( RLIMIT_CPU, &limit );
     cout << "result of setting mem limit = " << result << endl;
+#endif
 #endif  // end of stuff that crashes Cygwin
 
     // main construction data management class





------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to