From 7239e45ec34a35cfe150d7a596508edb210270fe Mon Sep 17 00:00:00 2001 From: vsc Date: Mon, 29 Jan 2007 10:18:15 +0000 Subject: [PATCH] allow the user to configure a maximum number of threads. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1792 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- C/threads.c | 14 ++++++++++++++ H/Yap.h | 8 +------- changes-5.1.html | 1 + config.h.in | 2 ++ configure | 42 ++++++++++++++++++++++++++++++++++++++---- configure.in | 27 ++++++++++++++++++++++++--- 6 files changed, 80 insertions(+), 14 deletions(-) diff --git a/C/threads.c b/C/threads.c index f23369a7f..5560d7e38 100644 --- a/C/threads.c +++ b/C/threads.c @@ -568,6 +568,12 @@ p_nof_threads(void) return Yap_unify(ARG1,MkIntegerTerm(i)); } +static Int +p_max_threads(void) +{ /* '$max_threads'(+P) */ + return Yap_unify(ARG1,MkIntegerTerm(MAX_WORKERS)); +} + static Int p_nof_threads_created(void) { /* '$nof_threads'(+P) */ @@ -583,6 +589,7 @@ p_thread_runtime(void) void Yap_InitThreadPreds(void) { Yap_InitCPred("$no_threads", 0, p_no_threads, HiddenPredFlag); + Yap_InitCPred("$max_threads", 1, p_max_threads, HiddenPredFlag); Yap_InitCPred("$thread_new_tid", 1, p_thread_new_tid, HiddenPredFlag); Yap_InitCPred("$create_thread", 6, p_create_thread, HiddenPredFlag); Yap_InitCPred("$thread_self", 1, p_thread_self, SafePredFlag|HiddenPredFlag); @@ -625,6 +632,12 @@ p_nof_threads(void) return Yap_unify(ARG1,MkIntTerm(1)); } +static Int +p_max_threads(void) +{ /* '$nof_threads'(+P) */ + return Yap_unify(ARG1,MkIntTerm(1)); +} + static Int p_nof_threads_created(void) { /* '$nof_threads'(+P) */ @@ -640,6 +653,7 @@ p_thread_runtime(void) void Yap_InitThreadPreds(void) { Yap_InitCPred("$no_threads", 0, p_no_threads, SafePredFlag|HiddenPredFlag); + Yap_InitCPred("$max_threads", 1, p_max_threads, SafePredFlag|HiddenPredFlag); Yap_InitCPred("$nof_threads", 1, p_nof_threads, SafePredFlag|HiddenPredFlag); Yap_InitCPred("$nof_threads_created", 1, p_nof_threads_created, SafePredFlag|HiddenPredFlag); Yap_InitCPred("$thread_runtime", 1, p_thread_runtime, SafePredFlag|HiddenPredFlag); diff --git a/H/Yap.h b/H/Yap.h index 928cf5aac..a6476ccae 100644 --- a/H/Yap.h +++ b/H/Yap.h @@ -10,7 +10,7 @@ * File: Yap.h.m4 * * mods: * * comments: main header file for YAP * -* version: $Id: Yap.h,v 1.18 2006-12-13 16:10:25 vsc Exp $ * +* version: $Id: Yap.h,v 1.19 2007-01-29 10:18:15 vsc Exp $ * *************************************************************************/ #include "config.h" @@ -141,12 +141,6 @@ #include #endif -#if defined(YAPOR) || defined(THREADS) -#define MAX_WORKERS (sizeof(unsigned long) * 8) -#else -#define MAX_WORKERS 1 -#endif /* YAPOR */ - #if SIZEOF_INT_P==4 #if SIZEOF_INT==4 diff --git a/changes-5.1.html b/changes-5.1.html index 95a7e0a40..03f8fdb84 100644 --- a/changes-5.1.html +++ b/changes-5.1.html @@ -16,6 +16,7 @@

Yap-5.1.2: