Exposition:
I am on Linux / Mac.
Part of my code is in Java, part of my code is in C++.
They both have the same file mmapped for fast communication.
I want to synchronize the Java & C++ code.
I know the following:
1) given two threads in Java, I can use Locks / monitors.
2) given one piece of code in Java, one in C++, I can have them synchronize over tcp/ip
3) given two pieces of C++ code, that have mmaped an area of memory, I can have them synchronize using gcc's compare_and_swap on a integer in the mmaped region.
Question:
Given that part of my code is in Java, part of my code is in C++, can I somehow do (3) -- does the JVM support some type of atomic compare & swap ? So both my Java & C++ code can use this integer as a lock of sorts?
Thanks!