Comment 2 for bug 919148

Revision history for this message
Tony Mansson (tony-mansson) wrote :

This bug can be repeated with other operations then "c_flock_10" too. It happens when the P parameter is used and P>2 resulting in fork() calls and multiple processes being used.

In this case the barrier function will not work. the process will never return from this call:

(void) barrier_queue(lm_barrier, &r);

on line 560 of libmicro.c

The barrier implementation contains a (C) notice from Sun Microsystems 2007, and it's unclear if it is completely compatible with Android pthreads.

A simple solution would be to remove "-P 2" option from the four benchmark operations that uses it and replace it with "-T 2". This way the benchmark will still be utilizing multiple CPUs but avoid the problem of synchronizing threads in separate processes in an Android environment.