From: Alan W. I. <ir...@be...> - 2016-11-19 07:39:53
|
Hi Phil: I got tired of speculating about more efficient Linux IPC methods so I implemented (as of commit e166866) the "Unnamed semaphores example" paradigm outlined starting on page 73 of <http://man7.org/conf/lca2013/IPC_Overview-LCA-2013-printable.pdf>. (I discussed this possibility in earlier versions of this thread.) This test project is described in cmake/test_linux_ipc/README. Follow the directions there to test it on your own Linux systems. My tests show this method is quite efficient for transferring data between processes on POSIX-compliant systems. The transfer process is under complete control of unnamed semaphores that reside in the shared memory so coordinating required data transfer between two applications is completely straightforward, and there is very little idle time required during these transfers. The IPC-relevant routines that are called in this test project are shm_open, ftruncate, mmap, sem_init, sem_wait, sem_post, and shm_unlink, and according to the Linux man pages, all of these functions are provided by platforms that are compliant with POSIX.1-2001. So on the present evidence from this test project I think this method looks extremely promising for efficiently transferring data both ways between -dev wxwidgets and wxPLViewer for POSIX-compliant systems. If after trying the test of the method documented in cmake/test_linux_ipc/README you agree with this assessment, would you be willing to have a go at the required wxwidgets and wxPLViewer source code changes to see if that essentially eliminates the large idle times we have now on Linux? Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |