sorry for my repost from psql-novice, probably it was not a right place for my question.

I'm trying to understand how to work with dynamic shared memory, message queues and workers.
The problem is I can not initialize any dsm segment -

    void _PG_init() {
dsm_segment *seg = dsm_create(32768, 0); // Segmentation fault here
        BackgroundWorker worker;
        sprintf(worker.bgw_name, "mystem wrapper process");
        worker.bgw_flags = BGWORKER_SHMEM_ACCESS;
        worker.bgw_start_time = BgWorkerStart_RecoveryFinished;
        worker.bgw_restart_time = BGW_NEVER_RESTART;
        worker.bgw_main = mainProc;
        worker.bgw_notify_pid = 0;

Also I was trying to move dsm_create call to a worker, but with the same result -

    static void mainProc(Datum) {
dsm_segment *seg = dsm_create(32768, 0); // Segmentation fault here
        pqsignal(SIGTERM, mystemSigterm);

What could be a reason and what am I doing wrong?

test/modules/test_shm_mq works fine...
dynamic_shared_memory_type = posix
OSX 10.11.5
PostgreSQL 9.5.3

Best regards,
Max Fomichev

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to