=== added file 'src/DiskIO/DiskThreads/CommIO.cc' --- src/DiskIO/DiskThreads/CommIO.cc 1970-01-01 00:00:00 +0000 +++ src/DiskIO/DiskThreads/CommIO.cc 2012-02-04 05:29:53 +0000 @@ -0,0 +1,93 @@ +/* + * DEBUG: section 05 Disk I/O pipe manager + * AUTHOR: Harvest Derived + * + * SQUID Web Proxy Cache http://www.squid-cache.org/ + * ---------------------------------------------------------- + * + * Squid is the result of efforts by numerous individuals from + * the Internet community; see the CONTRIBUTORS file for full + * details. Many organizations have provided support for Squid's + * development; see the SPONSORS file for full details. Squid is + * Copyrighted (C) 2001 by the Regents of the University of + * California; see the COPYRIGHT file for full details. Squid + * incorporates software developed and/or copyrighted by other + * sources; see the CREDITS file for full details. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. + * + * + * Copyright (c) 2003, Robert Collins + */ + +#include "squid.h" +#include "DiskIO/DiskThreads/CommIO.h" +#include "fde.h" + +void +CommIO::Initialise() +{ + /* Initialize done pipe signal */ + int DonePipe[2]; + if (pipe(DonePipe)) {} + DoneFD = DonePipe[1]; + DoneReadFD = DonePipe[0]; + fd_open(DoneReadFD, FD_PIPE, "async-io completetion event: main"); + fd_open(DoneFD, FD_PIPE, "async-io completetion event: threads"); + commSetNonBlocking(DoneReadFD); + commSetNonBlocking(DoneFD); + Comm::SetSelect(DoneReadFD, COMM_SELECT_READ, NULLFDHandler, NULL, 0); + Initialised = true; +} + +void +CommIO::NotifyIOClose() +{ + /* Close done pipe signal */ + FlushPipe(); + close(DoneFD); + close(DoneReadFD); + fd_close(DoneFD); + fd_close(DoneReadFD); + Initialised = false; +} + +bool CommIO::Initialised = false; +bool CommIO::DoneSignalled = false; +int CommIO::DoneFD = -1; +int CommIO::DoneReadFD = -1; + +void +CommIO::FlushPipe() +{ + char buf[256]; + FD_READ_METHOD(DoneReadFD, buf, sizeof(buf)); +} + +void +CommIO::NULLFDHandler(int fd, void *data) +{ + FlushPipe(); + Comm::SetSelect(fd, COMM_SELECT_READ, NULLFDHandler, NULL, 0); +} + +void +CommIO::ResetNotifications() +{ + if (DoneSignalled) { + FlushPipe(); + DoneSignalled = false; + } +} === renamed file 'src/CommIO.h' => 'src/DiskIO/DiskThreads/CommIO.h' --- src/CommIO.h 2008-03-22 00:58:20 +0000 +++ src/DiskIO/DiskThreads/CommIO.h 2012-01-14 11:07:04 +0000 @@ -1,5 +1,5 @@ -#ifndef __COMMIO_H__ -#define __COMMIO_H__ +#ifndef SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H +#define SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H #include "fde.h" @@ -35,4 +35,4 @@ } }; -#endif +#endif /* SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H */ === modified file 'src/DiskIO/DiskThreads/aiops.cc' --- src/DiskIO/DiskThreads/aiops.cc 2012-01-20 18:55:04 +0000 +++ src/DiskIO/DiskThreads/aiops.cc 2012-01-23 03:14:09 +0000 @@ -49,7 +49,7 @@ #if HAVE_SCHED_H #include #endif -#include "CommIO.h" +#include "DiskIO/DiskThreads/CommIO.h" #include "SquidTime.h" #include "Store.h" === modified file 'src/DiskIO/DiskThreads/aiops_win32.cc' --- src/DiskIO/DiskThreads/aiops_win32.cc 2012-01-20 18:55:04 +0000 +++ src/DiskIO/DiskThreads/aiops_win32.cc 2012-01-23 03:14:09 +0000 @@ -36,7 +36,7 @@ #include "squid-old.h" #include "squid_windows.h" -#include "CommIO.h" +#include "DiskIO/DiskThreads/CommIO.h" #include "DiskThreads.h" #include "SquidTime.h" #include "Store.h" === modified file 'src/Makefile.am' --- src/Makefile.am 2012-01-20 18:55:04 +0000 +++ src/Makefile.am 2012-01-23 03:24:08 +0000 @@ -173,7 +173,9 @@ if USE_AIOPS_WIN32 AIOPS_SOURCE = DiskIO/DiskThreads/aiops_win32.cc else -AIOPS_SOURCE = DiskIO/DiskThreads/aiops.cc +AIOPS_SOURCE = DiskIO/DiskThreads/aiops.cc \ + DiskIO/DiskThreads/CommIO.cc \ + DiskIO/DiskThreads/CommIO.h endif EXTRA_LIBRARIES = libAIO.a libBlocking.a libDiskDaemon.a libDiskThreads.a \ @@ -284,7 +286,6 @@ ClientRequestContext.h \ clientStream.cc \ clientStream.h \ - CommIO.h \ CompletionDispatcher.cc \ CompletionDispatcher.h \ CommRead.h \ @@ -522,9 +523,7 @@ $(SNMP_ALL_SOURCE) \ $(UNLINKDSOURCE) \ $(WIN32_ALL_SOURCE) \ - $(LOADABLE_MODULES_SOURCES) \ - DiskIO/DiskThreads/aiops.cc \ - DiskIO/DiskThreads/aiops_win32.cc + $(LOADABLE_MODULES_SOURCES) noinst_HEADERS = \ client_side_request.cci \ @@ -835,6 +834,12 @@ DiskIO/DiskThreads/DiskThreadsIOStrategy.cc \ DiskIO/DiskThreads/DiskThreadsIOStrategy.h +EXTRA_libDiskThreads_a_SOURCES = \ + DiskIO/DiskThreads/aiops.cc \ + DiskIO/DiskThreads/aiops_win32.cc \ + DiskIO/DiskThreads/CommIO.cc \ + DiskIO/DiskThreads/CommIO.h + DiskIO_DiskDaemon_diskd_SOURCES = DiskIO/DiskDaemon/diskd.cc nodist_DiskIO_DiskDaemon_diskd_SOURCES = time.cc DiskIO_DiskDaemon_diskd_LDADD = \ @@ -1432,8 +1437,6 @@ $(REPL_OBJS) \ $(SQUID_CPPUNIT_LA) -# tests/stub_CommIO.cc \ -# tests/stub_comm.cc tests_testDiskIO_SOURCES = \ CacheDigest.cc \ cbdata.cc \ @@ -2983,7 +2986,6 @@ tests/testMain.cc \ tests/testNull.h \ tests/stub_internal.cc \ - tests/stub_CommIO.cc \ tests/stub_store_rebuild.cc \ tests/stub_store_stats.cc \ fd.cc \ === modified file 'src/comm.cc' --- src/comm.cc 2012-01-20 18:55:04 +0000 +++ src/comm.cc 2012-01-23 03:14:09 +0000 @@ -45,7 +45,6 @@ #include "comm/Loops.h" #include "comm/Write.h" #include "comm/TcpAcceptor.h" -#include "CommIO.h" #include "CommRead.h" #include "MemBuf.h" #include "pconn.h" @@ -1819,60 +1818,6 @@ } } -void CommIO::Initialise() -{ - /* Initialize done pipe signal */ - int DonePipe[2]; - if (pipe(DonePipe)) {} - DoneFD = DonePipe[1]; - DoneReadFD = DonePipe[0]; - fd_open(DoneReadFD, FD_PIPE, "async-io completetion event: main"); - fd_open(DoneFD, FD_PIPE, "async-io completetion event: threads"); - commSetNonBlocking(DoneReadFD); - commSetNonBlocking(DoneFD); - Comm::SetSelect(DoneReadFD, COMM_SELECT_READ, NULLFDHandler, NULL, 0); - Initialised = true; -} - -void CommIO::NotifyIOClose() -{ - /* Close done pipe signal */ - FlushPipe(); - close(DoneFD); - close(DoneReadFD); - fd_close(DoneFD); - fd_close(DoneReadFD); - Initialised = false; -} - -bool CommIO::Initialised = false; -bool CommIO::DoneSignalled = false; -int CommIO::DoneFD = -1; -int CommIO::DoneReadFD = -1; - -void -CommIO::FlushPipe() -{ - char buf[256]; - FD_READ_METHOD(DoneReadFD, buf, sizeof(buf)); -} - -void -CommIO::NULLFDHandler(int fd, void *data) -{ - FlushPipe(); - Comm::SetSelect(fd, COMM_SELECT_READ, NULLFDHandler, NULL, 0); -} - -void -CommIO::ResetNotifications() -{ - if (DoneSignalled) { - FlushPipe(); - DoneSignalled = false; - } -} - /// Start waiting for a possibly half-closed connection to close // by scheduling a read callback to a monitoring handler that // will close the connection on read errors. === modified file 'src/tests/stub_CommIO.cc' --- src/tests/stub_CommIO.cc 2012-01-20 18:55:04 +0000 +++ src/tests/stub_CommIO.cc 2012-01-27 07:00:41 +0000 @@ -1,5 +1,5 @@ -#include "squid-old.h" -#include "CommIO.h" +#include "squid.h" +#include "DiskIO/DiskThreads/CommIO.h" #define STUB_API "CommIO.cc" #include "tests/STUB.h"