1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-28 05:21:27 +03:00

Remove circular #include's between wait_event.h and wait_event_types.h

wait_event_types.h is generated by the code, and included wait_event.h.
wait_event.h did the opposite move, including wait_event_types.h,
causing a circular dependency between both.

wait_event_types.h only needs to now about the wait event classes, so
this information is moved into its own file, and wait_event_types.h uses
this new header so as it does not depend anymore on wait_event.h.

Note that such errors can be found with clang-tidy, with commands like
this one:
clang-tidy source_file.c --checks=misc-header-include-cycle -- \
  -I/install/path/include/ -I/install/path/include/server/

Issue introduced by fa88928470b5.

Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Discussion: https://postgr.es/m/350192.1745768770@sss.pgh.pa.us
This commit is contained in:
Michael Paquier 2025-04-28 09:08:15 +09:00
parent 1aa7cf9eb8
commit b225c5e76e
3 changed files with 30 additions and 17 deletions

View File

@ -168,7 +168,7 @@ if ($gen_code)
printf $h $header_comment, 'wait_event_types.h';
printf $h "#ifndef WAIT_EVENT_TYPES_H\n";
printf $h "#define WAIT_EVENT_TYPES_H\n\n";
printf $h "#include \"utils/wait_event.h\"\n\n";
printf $h "#include \"utils/wait_classes.h\"\n\n";
printf $c $header_comment, 'pgstat_wait_event.c';

View File

@ -0,0 +1,29 @@
/*-------------------------------------------------------------------------
* wait_classes.h
* Definitions related to wait event classes
*
* Copyright (c) 2001-2025, PostgreSQL Global Development Group
*
* src/include/utils/wait_classes.h
* ----------
*/
#ifndef WAIT_CLASSES_H
#define WAIT_CLASSES_H
/* ----------
* Wait Classes
* ----------
*/
#define PG_WAIT_LWLOCK 0x01000000U
#define PG_WAIT_LOCK 0x03000000U
#define PG_WAIT_BUFFERPIN 0x04000000U
#define PG_WAIT_ACTIVITY 0x05000000U
#define PG_WAIT_CLIENT 0x06000000U
#define PG_WAIT_EXTENSION 0x07000000U
#define PG_WAIT_IPC 0x08000000U
#define PG_WAIT_TIMEOUT 0x09000000U
#define PG_WAIT_IO 0x0A000000U
#define PG_WAIT_INJECTIONPOINT 0x0B000000U
#endif /* WAIT_CLASSES_H */

View File

@ -10,22 +10,6 @@
#ifndef WAIT_EVENT_H
#define WAIT_EVENT_H
/* ----------
* Wait Classes
* ----------
*/
#define PG_WAIT_LWLOCK 0x01000000U
#define PG_WAIT_LOCK 0x03000000U
#define PG_WAIT_BUFFERPIN 0x04000000U
#define PG_WAIT_ACTIVITY 0x05000000U
#define PG_WAIT_CLIENT 0x06000000U
#define PG_WAIT_EXTENSION 0x07000000U
#define PG_WAIT_IPC 0x08000000U
#define PG_WAIT_TIMEOUT 0x09000000U
#define PG_WAIT_IO 0x0A000000U
#define PG_WAIT_INJECTIONPOINT 0x0B000000U
/* enums for wait events */
#include "utils/wait_event_types.h"