------- Comment #10 from jakub at gcc dot gnu dot org 2006-05-03 12:31 ------- I think using GOMP_1.1 symver instead of GOMP_1.0 would be preferrable. I think you probably want to keep the state in the user code (probably inside of .omp_data_* structure) so sender could zero it, then one routine (called after firstprivate block) would keep atomically incrementing the counter and if a flag has been set, futex_wake ()ing and another routine (called before lastprivate block) would set the flag, do an atomic barrier and then in a loop keep comparing the counter with number of threads and if smaller, futex_wait on the counter.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26943