]> git.ipfire.org Git - thirdparty/squid.git/blame - src/DiskIO/DiskThreads/CommIO.h
Boilerplate: update copyright blurbs on Squid helpers
[thirdparty/squid.git] / src / DiskIO / DiskThreads / CommIO.h
CommitLineData
1ff991dc
AJ
1#ifndef SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H
2#define SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H
56410c89 3
4#include "fde.h"
582c2af2 5#include "globals.h"
56410c89 6
7class CommIO
8{
9
10public:
11 static inline void NotifyIOCompleted();
12 static void ResetNotifications();
1564ff62 13 static void Initialize();
56410c89 14 static void NotifyIOClose();
15
16private:
17 static void NULLFDHandler(int, void *);
18 static void FlushPipe();
1564ff62 19 static bool Initialized;
56410c89 20 static bool DoneSignalled;
21 static int DoneFD;
22 static int DoneReadFD;
23};
24
45bb0381 25/* Inline code. TODO: make structured approach to inlining */
56410c89 26void
27CommIO::NotifyIOCompleted()
28{
1564ff62 29 if (!Initialized) {
45bb0381
AJ
30 fatalf("Disk Threads I/O pipes not initialized before first use.");
31 }
56410c89 32
33 if (!DoneSignalled) {
34 DoneSignalled = true;
35 FD_WRITE_METHOD(DoneFD, "!", 1);
36 }
37};
38
1ff991dc 39#endif /* SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H */