|
@@ -288,9 +288,35 @@ int starpu_pthread_rwlock_unlock(starpu_pthread_rwlock_t *rwlock)
|
|
|
|
|
|
return p_ret;
|
|
|
}
|
|
|
+
|
|
|
+#if defined(STARPU_SIMGRID_HAVE_XBT_BARRIER_INIT)
|
|
|
+int starpu_pthread_barrier_init(starpu_pthread_barrier_t *restrict barrier, const starpu_pthread_barrierattr_t *restrict attr, unsigned count)
|
|
|
+{
|
|
|
+ *barrier = xbt_barrier_init(count);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int starpu_pthread_barrier_destroy(starpu_pthread_barrier_t *barrier)
|
|
|
+{
|
|
|
+ if (*barrier)
|
|
|
+ xbt_barrier_destroy(*barrier);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int starpu_pthread_barrier_wait(starpu_pthread_barrier_t *barrier)
|
|
|
+{
|
|
|
+ _STARPU_TRACE_BARRIER_WAIT_BEGIN();
|
|
|
+
|
|
|
+ xbt_barrier_wait(*barrier);
|
|
|
+
|
|
|
+ _STARPU_TRACE_BARRIER_WAIT_END();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif /* defined(STARPU_SIMGRID) */
|
|
|
+
|
|
|
#endif /* STARPU_SIMGRID */
|
|
|
|
|
|
-#if defined(STARPU_SIMGRID) || !defined(STARPU_HAVE_PTHREAD_BARRIER)
|
|
|
+#if (defined(STARPU_SIMGRID) && !defined(STARPU_SIMGRID_HAVE_XBT_BARRIER_INIT)) || !defined(STARPU_HAVE_PTHREAD_BARRIER)
|
|
|
int starpu_pthread_barrier_init(starpu_pthread_barrier_t *restrict barrier, const starpu_pthread_barrierattr_t *restrict attr, unsigned count)
|
|
|
{
|
|
|
int ret = starpu_pthread_mutex_init(&barrier->mutex, NULL);
|