PostgreSQL Source Code  git master
test_shm_mq.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------
2  *
3  * test_shm_mq.h
4  * Definitions for shared memory message queues
5  *
6  * Copyright (c) 2013-2024, PostgreSQL Global Development Group
7  *
8  * IDENTIFICATION
9  * src/test/modules/test_shm_mq/test_shm_mq.h
10  *
11  * -------------------------------------------------------------------------
12  */
13 
14 #ifndef TEST_SHM_MQ_H
15 #define TEST_SHM_MQ_H
16 
17 #include "storage/dsm.h"
18 #include "storage/shm_mq.h"
19 #include "storage/spin.h"
20 
21 /* Identifier for shared memory segments used by this extension. */
22 #define PG_TEST_SHM_MQ_MAGIC 0x79fb2447
23 
24 /*
25  * This structure is stored in the dynamic shared memory segment. We use
26  * it to determine whether all workers started up OK and successfully
27  * attached to their respective shared message queues.
28  */
29 typedef struct
30 {
31  slock_t mutex;
36 
37 /* Set up dynamic shared memory and background workers for test run. */
38 extern void test_shm_mq_setup(int64 queue_size, int32 nworkers,
41 
42 /* Main entrypoint for a worker. */
44 
45 #endif
signed int int32
Definition: c.h:497
#define pg_attribute_noreturn()
Definition: c.h:220
#define PGDLLEXPORT
Definition: c.h:1334
FILE * input
FILE * output
uintptr_t Datum
Definition: postgres.h:64
PGDLLEXPORT void test_shm_mq_main(Datum) pg_attribute_noreturn()
Definition: worker.c:47
void test_shm_mq_setup(int64 queue_size, int32 nworkers, dsm_segment **segp, shm_mq_handle **output, shm_mq_handle **input)
Definition: setup.c:51