Greetings. I attach the code sample, which expected behaviour is: 1. to periodically restart thread, which executes «sleep 1s» with system* call; 2. and then to check if it should repeat the execution. The flag, which controls that re-execution is managed by another thread through atomic-box primitive. The code does not run as expected: the sleep executing sleep starts once, and change seems to remain invisible to main thread. The code works as expected, when: 1. (sleep 1) is used instead (system* "sleep" "1s"); 2. running the code on x86_64 cpus. The use of affinity mask taskset 0x01 guile test.scm does not help. - MB. Respectfully P.S. Additional information: $ guile --version guile (GNU Guile) 2.2.4 Copyright (C) 2018 Free Software Foundation, Inc. License LGPLv3+: GNU LGPL 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. $ sh config.guess armv7l-unknown-linux-gnueabihf $ pacman -Qi guile Name : guile Version : 2.2.4-1 Description : Portable, embeddable Scheme implementation written in C Architecture : armv7h URL : https://www.gnu.org/software/guile/ Licenses : GPL Groups : None Provides : None Depends On : gmp libltdl ncurses texinfo libunistring gc libffi Optional Deps : None Required By : make Optional For : gnutls Conflicts With : None Replaces : None Installed Size : 40.83 MiB Packager : Arch Linux ARM Build System Build Date : Tue 03 Jul 2018 04:47:53 PM +05 Install Date : Mon 09 Jul 2018 01:02:48 PM +05 Install Reason : Installed as a dependency for another package Install Script : No Validated By : Signature