-void SIMIX_context_init_factory_by_name(smx_context_factory_t * factory,
- const char *name)
-{
- if (!strcmp(name, "java"))
-#ifdef HAVE_JAVA
- SIMIX_ctx_java_factory_init(factory);
-#else
- THROW0(not_found_error, 0, "Factory 'Java' does not exist: Java support was not compiled in the SimGrid library");
-#endif /* HAVE_JAVA */
-
- else if (!strcmp(name, "thread"))
-#ifdef CONTEXT_THREADS
- SIMIX_ctx_thread_factory_init(factory);
-#else
- THROW0(not_found_error, 0, "Factory 'thread' does not exist: thread support was not compiled in the SimGrid library");
-#endif /* CONTEXT_THREADS */
-
- else if (!strcmp(name, "sysv"))
-#if !defined(WIN32) && !defined(CONTEXT_THREADS)
- SIMIX_ctx_sysv_factory_init(factory);
-#else
- THROW0(not_found_error, 0, "Factory 'sysv' does not exist: no System V thread support under Windows");
-#endif
- else
- THROW1(not_found_error, 0, "Factory '%s' does not exist", name);
+XBT_INLINE int SIMIX_context_get_nthreads(void) {
+ return smx_parallel_contexts;
+}
+
+/**
+ * \brief Returns whether some parallel threads are used
+ * for the user contexts.
+ * \return 1 if parallelism is used
+ */
+XBT_INLINE int SIMIX_context_is_parallel(void) {
+ return smx_parallel_contexts > 1;