Thinking quite some time about this remark: On 04.07.2021 21:37, Rick McGuire wrote: > When porting to new *ix environments, it is quite common for there to be > problems getting the > configuration for the semaphores to work correctly. From the stack trace, it > is hanging on a > request for a mutex semaphore. rexximage should run completely single > threaded, so this should > never deadlock. However, the semaphore in question is already held by the > current thread because > of a bit of recursion at startup, so It looks like the semaphores are not > properly handling nested > requests.
It seems that this and other problems that occur when porting to different platforms would be challenges for other projects as well. It is likely that over time open-source solutions develop that could be instrumentated for ooRexx as well. In C++ the Boost libraries [1], [2], [3], [4] have been playing an important role, also in the C++ standardization committee, which seems to pick sometimes Boost libraries as reference implementations. The Boost libraries are multi-platform so chances would be that if there is a Boost library for semaphores/mutexes that it is available for all operating systems on which open-source developers write software. Boost synchronization mechanisms [5] give an overview for the threads and interprocess libraries contained synchronization mechanisms: mutexes, conditions, semaphores, sharable and upgradable mutexes, lock transfers through move semantics, file locks, message queue. The question would be, if the ooRexx project would benefit by using boost libraries, e.g. for the semaphores. If the Boost libraries could be employed and would solve the semaphore/mutex problem, then maybe it helps ooRexx to be easier ported to other operating systems as well? Could Boost solve this and related porting problems? ---rony P.S.: Looking further it seems that some developers have ported/tested the boost libraries for Android [6], [7]. [8] offers pre-built boost libraries (1.72 from 2020-01031, 1.71 from 2019-10-18, etc.). [1] Boost (C++ libraries): <https://en.wikipedia.org/wiki/Boost_(C%2B%2B_libraries)> [2] Boost homepage: <https://www.boost.org/> [3] Boost background information: <https://www.boost.org/users/> [4] Boost download page: <https://www.boost.org/users/download/> [5] Boost synchronization mechanisms: <https://www.boost.org/doc/libs/1_76_0/doc/html/interprocess/synchronization_mechanisms.html> [6] Boost for Android: <http://silverglint.com/boost-for-android/> [7] Boost for Android github: <https://github.com/dec1/Boost-for-Android> [8] Some pre-built Boost for Android releases: <https://github.com/dec1/Boost-for-Android/releases> _______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel