Isolate atomic bit flag for execution.

- Denoted bit_true_atomic only for sys.execute bit settings. All other
bit_true type calls are for local variables only and don’t need atomic
access. Still looking into other ways of setting these flags without
requiring atomic access, but this is a patch for now.
This commit is contained in:
Sonny Jeon
2014-07-06 19:05:12 -06:00
parent a20d3e9855
commit 87c5703200
7 changed files with 28 additions and 26 deletions

View File

@ -264,7 +264,7 @@ uint8_t gc_execute_line(char *line)
// Check for more than one command per modal group violations in the current block
// NOTE: Variable 'word_bit' is always assigned, if the command is valid.
if ( bit_istrue(command_words,bit(word_bit)) ) { FAIL(STATUS_GCODE_MODAL_GROUP_VIOLATION); }
bit_true(command_words,bit(word_bit));
command_words |= bit(word_bit);
break;
case 'M':
@ -307,7 +307,7 @@ uint8_t gc_execute_line(char *line)
// Check for more than one command per modal group violations in the current block
// NOTE: Variable 'word_bit' is always assigned, if the command is valid.
if ( bit_istrue(command_words,bit(word_bit)) ) { FAIL(STATUS_GCODE_MODAL_GROUP_VIOLATION); }
bit_true(command_words,bit(word_bit));
command_words |= bit(word_bit);
break;
// NOTE: All remaining letters assign values.