CommIO.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9/* DEBUG: section 05 Disk I/O pipe manager */
10
11#include "squid.h"
12#include "comm/Loops.h"
14#include "fd.h"
15#include "globals.h"
16#include "win32.h"
17
18void
20{
22 return;
23
24 /* Initialize done pipe signal */
25 int DonePipe[2];
26 if (pipe(DonePipe)) {}
27 DoneFD = DonePipe[1];
28 DoneReadFD = DonePipe[0];
29 fd_open(DoneReadFD, FD_PIPE, "async-io completion event: main");
30 fd_open(DoneFD, FD_PIPE, "async-io completion event: threads");
34 Initialized = true;
35}
36
37void
39{
40 /* Close done pipe signal */
41 FlushPipe();
42 close(DoneFD);
43 close(DoneReadFD);
46 Initialized = false;
47}
48
49bool CommIO::Initialized = false;
50bool CommIO::DoneSignalled = false;
51int CommIO::DoneFD = -1;
52int CommIO::DoneReadFD = -1;
53
54void
56{
57 char buf[256];
58 FD_READ_METHOD(DoneReadFD, buf, sizeof(buf));
59}
60
61void
62CommIO::NULLFDHandler(int fd, void *)
63{
64 FlushPipe();
66}
67
68void
70{
71 if (DoneSignalled) {
72 FlushPipe();
73 DoneSignalled = false;
74 }
75}
76
static bool DoneSignalled
Definition: CommIO.h:29
static void NotifyIOClose()
Definition: CommIO.cc:38
static void ResetNotifications()
Definition: CommIO.cc:69
static bool Initialized
Definition: CommIO.h:28
static int DoneReadFD
Definition: CommIO.h:31
static void Initialize()
Definition: CommIO.cc:19
static int DoneFD
Definition: CommIO.h:30
static void FlushPipe()
Definition: CommIO.cc:55
static void NULLFDHandler(int, void *)
Definition: CommIO.cc:62
void fd_open(const int fd, unsigned int, const char *description)
Definition: minimal.cc:14
void fd_close(const int fd)
Definition: minimal.cc:20
int commSetNonBlocking(int fd)
Definition: comm.cc:1066
#define COMM_SELECT_READ
Definition: defines.h:24
@ FD_PIPE
Definition: enums.h:17
int FD_READ_METHOD(int fd, char *buf, int len)
Definition: fde.h:194
void SetSelect(int, unsigned int, PF *, void *, time_t)
Mark an FD to be watched for its IO status.
Definition: ModDevPoll.cc:223

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors