]>
Commit | Line | Data |
---|---|---|
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 | |
7 | class CommIO | |
8 | { | |
9 | ||
10 | public: | |
11 | static inline void NotifyIOCompleted(); | |
12 | static void ResetNotifications(); | |
1564ff62 | 13 | static void Initialize(); |
56410c89 | 14 | static void NotifyIOClose(); |
15 | ||
16 | private: | |
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 | 26 | void |
27 | CommIO::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 */ |