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:
parent
a20d3e9855
commit
87c5703200
7 changed files with 28 additions and 26 deletions
4
gcode.c
4
gcode.c
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue