Просмотр исходного кода

move hack out of the include files

Andra Hugo лет назад: 11
Родитель
Сommit
4bd482e7b9
2 измененных файлов с 12 добавлено и 6 удалено
  1. 0 6
      include/starpu_thread_util.h
  2. 12 0
      src/common/thread.c

+ 0 - 6
include/starpu_thread_util.h

@@ -71,9 +71,6 @@
 
 #define STARPU_PTHREAD_MUTEX_LOCK(mutex) do {				      \
 	int p_ret = starpu_pthread_mutex_lock(mutex);			      \
-	int workerid = starpu_worker_get_id();                                \
-	if(workerid != -1 && starpu_worker_mutex_is_sched_mutex(workerid, mutex)) \
-		starpu_worker_set_flag_sched_mutex_locked(workerid, 1);	      \
 	if (STARPU_UNLIKELY(p_ret)) {                                          \
 		fprintf(stderr,                                                \
 			"%s:%d starpu_pthread_mutex_lock: %s\n",               \
@@ -99,9 +96,6 @@ int _STARPU_PTHREAD_MUTEX_TRYLOCK(starpu_pthread_mutex_t *mutex, char *file, int
 
 #define STARPU_PTHREAD_MUTEX_UNLOCK(mutex) do {                               \
 	int p_ret = starpu_pthread_mutex_unlock(mutex);                        \
-	int workerid = starpu_worker_get_id();                                \
-	if(workerid != -1 && starpu_worker_mutex_is_sched_mutex(workerid, mutex)) \
-		starpu_worker_set_flag_sched_mutex_locked(workerid, 0);	      \
 	if (STARPU_UNLIKELY(p_ret)) {                                          \
 		fprintf(stderr,                                                \
 			"%s:%d starpu_pthread_mutex_unlock: %s\n",             \

+ 12 - 0
src/common/thread.c

@@ -267,6 +267,9 @@ int starpu_pthread_mutex_lock(starpu_pthread_mutex_t *mutex)
 	_STARPU_TRACE_LOCKING_MUTEX();
 
 	int p_ret = pthread_mutex_lock(mutex);
+	int workerid = starpu_worker_get_id();
+	if(workerid != -1 && starpu_worker_mutex_is_sched_mutex(workerid, mutex))
+		starpu_worker_set_flag_sched_mutex_locked(workerid, 1);	 
 
 	_STARPU_TRACE_MUTEX_LOCKED();
 
@@ -278,6 +281,9 @@ int starpu_pthread_mutex_unlock(starpu_pthread_mutex_t *mutex)
 	_STARPU_TRACE_UNLOCKING_MUTEX();
 
 	int p_ret = pthread_mutex_unlock(mutex);
+	int workerid = starpu_worker_get_id(); 
+	if(workerid != -1 && starpu_worker_mutex_is_sched_mutex(workerid, mutex)) 
+		starpu_worker_set_flag_sched_mutex_locked(workerid, 0);	
 
 	_STARPU_TRACE_MUTEX_UNLOCKED();
 
@@ -292,7 +298,13 @@ int starpu_pthread_mutex_trylock(starpu_pthread_mutex_t *mutex)
 	ret = pthread_mutex_trylock(mutex);
 
 	if (!ret)
+	{
+		int workerid = starpu_worker_get_id();	
+		if(workerid != -1 && starpu_worker_mutex_is_sched_mutex(workerid, mutex)) 
+			starpu_worker_set_flag_sched_mutex_locked(workerid, 1);
+
 		_STARPU_TRACE_MUTEX_LOCKED();
+	}
 
 	return ret;
 }