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.
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.