Commit f7e6610b authored by Rafaël Carré's avatar Rafaël Carré Committed by Fiona Glaser

Linux x264_cpu_num_processors(): use glibc macros

The cpu_set_t structure is considered opaque.
Also handle sched_getaffinity() error case if "cpusetsize is smaller than the size of the affinity mask used by the kernel."
parent 670d8181
......@@ -365,14 +365,8 @@ int x264_cpu_num_processors( void )
return sysconf( _SC_NPROCESSORS_ONLN );
#elif SYS_LINUX
unsigned int bit;
int np;
cpu_set_t p_aff;
memset( &p_aff, 0, sizeof(p_aff) );
sched_getaffinity( 0, sizeof(p_aff), &p_aff );
for( np = 0, bit = 0; bit < sizeof(p_aff); bit++ )
np += (((uint8_t *)&p_aff)[bit / 8] >> (bit % 8)) & 1;
return np;
return sched_getaffinity( 0, sizeof(p_aff), &p_aff ) ? 1 : CPU_COUNT(&p_aff);
#elif SYS_BEOS
system_info info;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment