Fixed bug in taucs_system_memory_size() on Linux 2.6

This commit is contained in:
Laurent Saboret 2006-03-20 11:37:20 +00:00
parent 86adba238c
commit ce976769ea
1 changed files with 12 additions and 11 deletions

View File

@ -62,26 +62,27 @@ extern "C"
/* returns size of memory available for allocation */ /* returns size of memory available for allocation */
double cgal_taucs_available_memory_size() double cgal_taucs_available_memory_size()
{ {
double m; double m;
double m_sys; double m_sys;
m = taucs_system_memory_size(); m = taucs_system_memory_size();
/* taucs_system_memory_size() is buggy on Linux 2.6 */
/* It returns only 1% of the actual memory */
#ifdef OSTYPE_linux #ifdef OSTYPE_linux
/* taucs_system_memory_size() is buggy on Linux 2.6 */
if (m < 1048576.0)
{
m_sys = (double) sysconf(_SC_PAGESIZE); m_sys = (double) sysconf(_SC_PAGESIZE);
m_sys *= (double) sysconf(_SC_PHYS_PAGES); m_sys *= (double) sysconf(_SC_PHYS_PAGES);
/* we limit m by 0.75*m_sys */ if (m < m_sys/10.0)
m = floor(0.75 * m_sys); {
} /* we limit m by 0.75*m_sys */
m = floor(0.75 * m_sys);
}
#endif #endif
taucs_printf("cgal_taucs_available_memory_size returns %lf MB\n", m/1048576.0); taucs_printf("cgal_taucs_available_memory_size returns %lfMB\n", m/1048576.0);
return m; return m;
} }
/* Redirect calls to cgal_taucs_available_memory_size() */ /* Redirect calls to cgal_taucs_available_memory_size() */