Open Sfinx opened 2 years ago
env:
This workaround works if used as sender:
'use strict'
import MessageQueue from 'svmq'
let app = {}
const APP_IPC_KEY = 31337
const fromAPP = 100
const toAPP = 200
async function start() {
try {
app = new MessageQueue(APP_IPC_KEY)
app.send = async (msg) => {
return new Promise((resolve, reject) => {
app.push(msg, { type: toAPP }, (err) => {
return err ? reject(err) : resolve()
})
})
}
let q = 0;
while(q++ < 100000)
await app.send('msg N ' + q)
} catch(e) {
console.log('start failed : ' + e.message)
}
}
start()
Sending garbage is strange in any case: if the msgsnd is using with IPC_NOWAIT - then it must return error with full queue. If msgsnd is blocking call then it must wait until queue space will be available.
assuming dumb sender:
and reciever:
receiver prints garbage to console