Skip to content

Commit 44aebcd

Browse files
committed
For JS, emscripten_sleep before writing registers
Allows handling of pending updates before checking if register changed
1 parent 6a9d989 commit 44aebcd

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/wallaby_p.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ void Wallaby::writeRegister8b(unsigned char address, unsigned char value)
244244
std::lock_guard<std::mutex> lock(transfer_mutex_);
245245

246246
#ifdef TARGET_EMSCRIPTEN
247+
emscripten_sleep(0);
247248
unsigned char addresses[] = {address};
248249
unsigned char values[] = {value};
249250
updateRegisters(addresses, values, 1);
@@ -298,6 +299,7 @@ void Wallaby::writeRegister16b(unsigned char address, unsigned short value)
298299
std::lock_guard<std::mutex> lock(transfer_mutex_);
299300

300301
#ifdef TARGET_EMSCRIPTEN
302+
emscripten_sleep(0);
301303
unsigned char addresses[] = {address, static_cast<unsigned char>(address + 1)};
302304
unsigned char values[] = {value1, value2};
303305
updateRegisters(addresses, values, 2);
@@ -363,6 +365,7 @@ void Wallaby::writeRegister32b(unsigned char address, unsigned int value)
363365
std::lock_guard<std::mutex> lock(transfer_mutex_);
364366

365367
#ifdef TARGET_EMSCRIPTEN
368+
emscripten_sleep(0);
366369
unsigned char addresses[] = {address, static_cast<unsigned char>(address + 1), static_cast<unsigned char>(address + 2), static_cast<unsigned char>(address + 3)};
367370
unsigned char values[] = {value1, value2, value3, value4};
368371
updateRegisters(addresses, values, 4);

0 commit comments

Comments
 (0)