summaryrefslogtreecommitdiffstats
path: root/src/sat
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-03-20 05:01:40 +0000
committerAlan Mishchenko <alanmi@berkeley.edu>2017-03-20 05:01:40 +0000
commit245532cad1d93f1347dec39035d6db7f8eebc2c6 (patch)
treebc6c52755f0962b9ac3360ed50520ee5ec3279e6 /src/sat
parent027bb83e814d5aec18c080004854b9cc6b679ad9 (diff)
parent9a1ef0e5d0d4dbe26f9d0657ef53f9a482aed35d (diff)
downloadabc-245532cad1d93f1347dec39035d6db7f8eebc2c6.tar.gz
abc-245532cad1d93f1347dec39035d6db7f8eebc2c6.tar.bz2
abc-245532cad1d93f1347dec39035d6db7f8eebc2c6.zip
Merged in ysho/abc (pull request #69)
Improvements to %pdra
Diffstat (limited to 'src/sat')
-rw-r--r--src/sat/bmc/bmc.h2
-rw-r--r--src/sat/bmc/bmcBmc3.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/src/sat/bmc/bmc.h b/src/sat/bmc/bmc.h
index a3f353c2..22ae765d 100644
--- a/src/sat/bmc/bmc.h
+++ b/src/sat/bmc/bmc.h
@@ -73,6 +73,8 @@ struct Saig_ParBmc_t_
int nDropOuts; // the number of dropped outputs
abctime timeLastSolved; // the time when the last output was solved
int(*pFuncOnFail)(int,Abc_Cex_t*); // called for a failed output in MO mode
+ int RunId; // BMC id in this run
+ int(*pFuncStop)(int); // callback to terminate
};
diff --git a/src/sat/bmc/bmcBmc3.c b/src/sat/bmc/bmcBmc3.c
index ccd0bb90..34fdf45f 100644
--- a/src/sat/bmc/bmcBmc3.c
+++ b/src/sat/bmc/bmcBmc3.c
@@ -1533,6 +1533,12 @@ clkOther += Abc_Clock() - clk2;
Abc_Print( 1, "Reached timeout (%d seconds).\n", pPars->nTimeOut );
goto finish;
}
+ if ( p->pPars->pFuncStop && p->pPars->pFuncStop(p->pPars->RunId) )
+ {
+ if ( !pPars->fSilent )
+ Abc_Print( 1, "Bmc3 got callbacks.\n" );
+ goto finish;
+ }
// skip solved outputs
if ( p->vCexes && Vec_PtrEntry(p->vCexes, i) )
continue;