| /*------------------------------------------------------------------------- |
| * |
| * sharedfileset.h |
| * Shared temporary file management. |
| * |
| * |
| * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * src/include/storage/sharedfileset.h |
| * |
| *------------------------------------------------------------------------- |
| */ |
| |
| #ifndef SHAREDFILESET_H |
| #define SHAREDFILESET_H |
| |
| #include "storage/dsm.h" |
| #include "storage/fd.h" |
| #include "storage/fileset.h" |
| #include "storage/spin.h" |
| |
| /* |
| * A set of temporary files that can be shared by multiple backends. |
| */ |
| typedef struct SharedFileSet |
| { |
| FileSet fs; |
| slock_t mutex; /* mutex protecting the reference count */ |
| int refcnt; /* number of attached backends */ |
| } SharedFileSet; |
| |
| extern void SharedFileSetInit(SharedFileSet *fileset, dsm_segment *seg); |
| extern void SharedFileSetAttach(SharedFileSet *fileset, dsm_segment *seg); |
| extern void SharedFileSetDeleteAll(SharedFileSet *fileset); |
| |
| #endif |