Ignore:
Timestamp:
Apr 2, 2008, 2:32:58 PM (16 years ago)
Author:
gah
Message:

added global pgapack_abort flag to plugin and abort operation to optimizer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/optimizer/src/rp_optimizer_tcl.c

    r903 r986  
    1515 */
    1616#include "rp_optimizer.h"
     17
     18extern int pgapack_abort;
    1719
    1820/*
     
    6769__declspec( dllexport )
    6870#endif
     71
     72extern int pgapack_abort;
    6973
    7074int
     
    362366            return TCL_ERROR;
    363367        }
    364     }
    365 
    366     /*
    367      * OPTION:  get ?globPattern? ?-option?
    368      */
    369     else if (*option == 'g' && strcmp(option,"get") == 0) {
     368    } else if (*option == 'a' && strcmp(option,"abort") == 0) {
     369        int value;
     370
     371        if (objc < 3) {
     372            Tcl_WrongNumArgs(interp, 1, objv, "abort bool");
     373            return TCL_ERROR;
     374        }
     375        if (Tcl_GetBooleanFromObj(interp, objv[2], &value) != TCL_OK) {
     376            return TCL_ERROR;
     377        }
     378        pgapack_abort = value;
     379        return TCL_OK;
     380    } else if (*option == 'g' && strcmp(option,"get") == 0) {
     381        /*
     382         * OPTION:  get ?globPattern? ?-option?
     383         */
    370384        if (objc > 2) {
    371385            path = Tcl_GetStringFromObj(objv[2], (int*)NULL);
     
    623637            RpOptimizerPerformInTcl, fitnessExpr);
    624638
     639        fprintf(stderr, ">>>status=%d\n", status);
     640
    625641        Tcl_DecrRefCount(toolPtr);
    626642        if (updateCmdPtr) {
     
    637653            break;
    638654        case RP_OPTIM_ABORTED:
     655            fprintf(stderr, "Got abort status=%d\n", status);
    639656            Tcl_SetResult(interp, "aborted", TCL_STATIC);
    640657            break;
     
    824841        status = Tcl_GlobalEval(toolDataPtr->interp,
    825842            Tcl_DStringValue(&buffer));
    826 
    827843        if (status == TCL_ERROR) {
    828844            Tcl_BackgroundError(toolDataPtr->interp);
    829         }
    830         else if (status == TCL_BREAK || status == TCL_RETURN) {
    831             result = RP_OPTIM_ABORTED;
    832         }
     845        }
    833846        Tcl_DStringFree(&buffer);
    834847    }
Note: See TracChangeset for help on using the changeset viewer.