|
@@ -3,7 +3,7 @@
|
|
|
* Copyright (C) 2011-2018 Inria
|
|
|
* Copyright (C) 2017 Arthur Chevalier
|
|
|
* Copyright (C) 2012-2019 CNRS
|
|
|
- * Copyright (C) 2012-2018 Université de Bordeaux
|
|
|
+ * Copyright (C) 2012-2019 Université de Bordeaux
|
|
|
* Copyright (C) 2016 Uppsala University
|
|
|
*
|
|
|
* StarPU is free software; you can redistribute it and/or modify
|
|
@@ -1443,6 +1443,7 @@ int _starpu_nworkers_able_to_execute_task(struct starpu_task *task, struct _star
|
|
|
void _starpu_init_all_sched_ctxs(struct _starpu_machine_config *config)
|
|
|
{
|
|
|
STARPU_PTHREAD_KEY_CREATE(&sched_ctx_key, NULL);
|
|
|
+ STARPU_PTHREAD_SETSPECIFIC(sched_ctx_key, (void*)(uintptr_t)STARPU_NMAX_SCHED_CTXS);
|
|
|
window_size = starpu_get_env_float_default("STARPU_WINDOW_TIME_SIZE", 0.0);
|
|
|
nobind = starpu_get_env_number("STARPU_WORKERS_NOBIND");
|
|
|
|
|
@@ -1654,18 +1655,18 @@ int _starpu_wait_for_no_ready_of_sched_ctx(unsigned sched_ctx_id)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * FIXME: This should rather be
|
|
|
+ * void starpu_sched_ctx_set_context(unsigned sched_ctx)
|
|
|
+ */
|
|
|
void starpu_sched_ctx_set_context(unsigned *sched_ctx)
|
|
|
{
|
|
|
- STARPU_PTHREAD_SETSPECIFIC(sched_ctx_key, (void*)sched_ctx);
|
|
|
+ STARPU_PTHREAD_SETSPECIFIC(sched_ctx_key, (void*)(uintptr_t)*sched_ctx);
|
|
|
}
|
|
|
|
|
|
unsigned starpu_sched_ctx_get_context()
|
|
|
{
|
|
|
- unsigned *sched_ctx = (unsigned*)STARPU_PTHREAD_GETSPECIFIC(sched_ctx_key);
|
|
|
- if(sched_ctx == NULL)
|
|
|
- return STARPU_NMAX_SCHED_CTXS;
|
|
|
- STARPU_ASSERT(*sched_ctx < STARPU_NMAX_SCHED_CTXS);
|
|
|
- return *sched_ctx;
|
|
|
+ return (unsigned)(uintptr_t)STARPU_PTHREAD_GETSPECIFIC(sched_ctx_key);
|
|
|
}
|
|
|
|
|
|
unsigned _starpu_sched_ctx_get_current_context()
|