Cleanup and refactor Fortran shared memory usage

also added some missing locking for the ipc(1) value in ft8_decode().
This commit is contained in:
Bill Somerville
2020-03-16 13:58:38 +00:00
parent 3962aa3c43
commit 488c2e8066
10 changed files with 87 additions and 104 deletions
+20
View File
@@ -0,0 +1,20 @@
#include <QSharedMemory>
#include <QLatin1String>
// Multiple instances: KK1D, 17 Jul 2013
QSharedMemory shmem;
struct jt9com;
// C wrappers for a QSharedMemory class instance
extern "C"
{
bool shmem_create (int nsize) {return shmem.create(nsize);}
void shmem_setkey (char * const mykey) {shmem.setKey(QLatin1String{mykey});}
bool shmem_attach () {return shmem.attach();}
int shmem_size () {return static_cast<int> (shmem.size());}
struct jt9com * shmem_address () {return reinterpret_cast<struct jt9com *>(shmem.data());}
bool shmem_lock () {return shmem.lock();}
bool shmem_unlock () {return shmem.unlock();}
bool shmem_detach () {return shmem.detach();}
}