fix cut handling with threads
do not compile or.threadengine unless yapor on.
This commit is contained in:
@@ -129,7 +129,7 @@ STD_PROTO(static inline qg_sol_fr_ptr CUT_prune_solution_frames, (qg_sol_fr_ptr,
|
||||
goto shared_end
|
||||
|
||||
#define SCH_check_prune_request() \
|
||||
if (LOCAL_prune_request) { \
|
||||
if (Get_LOCAL_prune_request()) { \
|
||||
SCHEDULER_GET_WORK(); \
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ STD_PROTO(static inline qg_sol_fr_ptr CUT_prune_solution_frames, (qg_sol_fr_ptr,
|
||||
|
||||
#define CUT_prune_to(PRUNE_CP) \
|
||||
if (YOUNGER_CP(Get_LOCAL_top_cp(), PRUNE_CP)) { \
|
||||
if (! LOCAL_prune_request) \
|
||||
if (! Get_LOCAL_prune_request()) \
|
||||
prune_shared_branch(PRUNE_CP); \
|
||||
PRUNE_CP = Get_LOCAL_top_cp(); \
|
||||
}
|
||||
@@ -342,8 +342,8 @@ static inline
|
||||
void CUT_send_prune_request(int worker, choiceptr prune_cp) {
|
||||
LOCK_WORKER(worker);
|
||||
if (YOUNGER_CP(REMOTE_top_cp(worker), prune_cp) &&
|
||||
(! REMOTE_prune_request(worker) || YOUNGER_CP(REMOTE_prune_request(worker), prune_cp)))
|
||||
REMOTE_prune_request(worker) = prune_cp;
|
||||
(! Get_REMOTE_prune_request(worker) || YOUNGER_CP(Get_REMOTE_prune_request(worker), prune_cp)))
|
||||
Set_REMOTE_prune_request(worker, prune_cp);
|
||||
UNLOCK_WORKER(worker);
|
||||
return;
|
||||
}
|
||||
@@ -352,8 +352,8 @@ void CUT_send_prune_request(int worker, choiceptr prune_cp) {
|
||||
static inline
|
||||
void CUT_reset_prune_request(void) {
|
||||
LOCK_WORKER(worker_id);
|
||||
if (LOCAL_prune_request && EQUAL_OR_YOUNGER_CP(LOCAL_prune_request, Get_LOCAL_top_cp()))
|
||||
LOCAL_prune_request = NULL;
|
||||
if (Get_LOCAL_prune_request() && EQUAL_OR_YOUNGER_CP(Get_LOCAL_prune_request(), Get_LOCAL_top_cp()))
|
||||
Set_LOCAL_prune_request(NULL);
|
||||
UNLOCK_WORKER(worker_id);
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user