changed to explicit no yield allowed flag

This commit is contained in:
fros4943 2006-10-09 14:13:42 +00:00
parent 774b977fe9
commit 5c4f07dcf0
3 changed files with 9 additions and 7 deletions

View file

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: simEnvChange.c,v 1.4 2006/10/06 10:47:09 fros4943 Exp $ * $Id: simEnvChange.c,v 1.5 2006/10/09 14:13:42 fros4943 Exp $
*/ */
#include <stdio.h> #include <stdio.h>
@ -38,7 +38,7 @@
extern const struct simInterface *simInterfaces[]; extern const struct simInterface *simInterfaces[];
char simDontFallAsleep = 0; char simDontFallAsleep = 0;
char simInsideProcessRun = 0; char simNoYield = 0;
int simProcessRunValue; int simProcessRunValue;
int simEtimerPending; int simEtimerPending;

View file

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: simEnvChange.h,v 1.4 2006/10/06 10:47:09 fros4943 Exp $ * $Id: simEnvChange.h,v 1.5 2006/10/09 14:13:42 fros4943 Exp $
*/ */
#ifndef __SIMENVCHANGE_H__ #ifndef __SIMENVCHANGE_H__
@ -45,7 +45,7 @@ extern int simNextExpirationTime;
// Variable that when set to != 0, stops the mote from falling asleep next tick // Variable that when set to != 0, stops the mote from falling asleep next tick
extern char simDontFallAsleep; extern char simDontFallAsleep;
extern char simInsideProcessRun; extern char simNoYield;
// Definition for registering an interface // Definition for registering an interface
#define SIM_INTERFACE(name, doActionsBeforeTick, doActionsAfterTick) \ #define SIM_INTERFACE(name, doActionsBeforeTick, doActionsAfterTick) \

View file

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: code_main_template,v 1.8 2006/10/06 10:47:33 fros4943 Exp $ * $Id: code_main_template,v 1.9 2006/10/09 14:14:18 fros4943 Exp $
*/ */
/** /**
@ -116,9 +116,7 @@ start_process_run_loop(void *data)
/* Always pretend we have processes left while inside process_run() */ /* Always pretend we have processes left while inside process_run() */
simProcessRunValue = 1; simProcessRunValue = 1;
simInsideProcessRun = 1;
simProcessRunValue = process_run(); simProcessRunValue = process_run();
simInsideProcessRun = 0;
// Check if we must stay awake // Check if we must stay awake
if (simDontFallAsleep) { if (simDontFallAsleep) {
@ -231,7 +229,9 @@ JNIEXPORT void JNICALL
Java_se_sics_cooja_corecomm_[CLASS_NAME]_tick(JNIEnv *env, jobject obj) Java_se_sics_cooja_corecomm_[CLASS_NAME]_tick(JNIEnv *env, jobject obj)
{ {
/* Let all simulation interfaces act first */ /* Let all simulation interfaces act first */
simNoYield = 1;
doActionsBeforeTick(); doActionsBeforeTick();
simNoYield = 0;
/* Check if any e-timers are pending (save result for state decisions) */ /* Check if any e-timers are pending (save result for state decisions) */
if (etimer_pending()) { if (etimer_pending()) {
@ -247,7 +247,9 @@ Java_se_sics_cooja_corecomm_[CLASS_NAME]_tick(JNIEnv *env, jobject obj)
cooja_mt_exec(&process_run_thread); cooja_mt_exec(&process_run_thread);
/* Let all simulation interfaces act before returning to java */ /* Let all simulation interfaces act before returning to java */
simNoYield = 1;
doActionsAfterTick(); doActionsAfterTick();
simNoYield = 0;
/* Look for new e-timers */ /* Look for new e-timers */
if (!simEtimerPending && etimer_pending()) { if (!simEtimerPending && etimer_pending()) {