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

Reply via email to