experiment in or-parallel threads.

This commit is contained in:
Vítor Manuel de Morais Santos Costa
2010-01-14 15:58:19 +00:00
parent ac104aac9c
commit 5ef31fbfd2
29 changed files with 902 additions and 177 deletions

View File

@@ -176,7 +176,7 @@ void Yap_init_local(void) {
#ifdef YAPOR
/* local data related to or-parallelism */
LOCAL = REMOTE + worker_id;
LOCAL_top_cp = B_BASE;
Set_LOCAL_top_cp(B_BASE);
LOCAL_top_or_fr = GLOBAL_root_or_fr;
LOCAL_load = 0;
LOCAL_share_request = MAX_WORKERS;
@@ -193,7 +193,7 @@ void Yap_init_local(void) {
LOCAL_top_sg_fr = NULL;
LOCAL_top_dep_fr = GLOBAL_root_dep_fr;
#ifdef YAPOR
LOCAL_top_cp_on_stack = B_BASE; /* ??? */
Set_LOCAL_top_cp_on_stack(B_BASE); /* ??? */
LOCAL_top_susp_or_fr = GLOBAL_root_or_fr;
#endif /* YAPOR */
#endif /* TABLING */
@@ -210,7 +210,7 @@ void make_root_frames(void) {
INIT_LOCK(OrFr_lock(or_fr));
OrFr_alternative(or_fr) = NULL;
BITMAP_copy(OrFr_members(or_fr), GLOBAL_bm_present_workers);
OrFr_node(or_fr) = B_BASE;
SetOrFr_node(or_fr, B_BASE);
OrFr_nearest_livenode(or_fr) = NULL;
OrFr_depth(or_fr) = 0;
OrFr_pend_prune_cp(or_fr) = NULL;
@@ -240,6 +240,9 @@ void make_root_frames(void) {
#ifdef YAPOR
void init_workers(void) {
int proc;
#ifdef THREADS
return;
#endif
NOfThreads = number_workers;
#ifdef ACOW
if (number_workers > 1) {