Having installed Google Analytics two months ago, I now know that the two most popular search phrases that people use to get here from Google are “elisp hex” and “c++ message passing”. There isn’t much more to say about using hex in elisp, but I’m sure that there is more to say about C++ message passing.
The first thing that comes to mind is what does that phrase mean? The obvious interpretations are passing messages between threads, passing messages between processes, passing messages on a network (local or Internet).
I previously mentioned that phrase in C/C++ Message Passing and Small Revisit of C++ Message Passing (in a Threaded Program) . Both relate to passing messages between pthreads in a C++ program. I rely heavily on that pattern because I prefer to try to treat my threads as shared nothing. When possible, pass messages between threads instead of relying on shared data structures, and you will eliminate a lot of potential bugs. If done correctly, it will also help eliminate bottle necks coming from lock contention.
In theory, I don’t like shared everything threading, but there are times when sharing things is required for performance, and there are times when parallization tools like OpenMP (or auto-parallelizers) are very valuable, and they required a shared every thing environment.
One of these days, I should try adjusting the implementation to use shared memory to enforce the seperation even more. That, of course, would take us into messages between processes, which is a post still in progress.