/*
- * $Id: DiskThreadsDiskFile.cc,v 1.5 2005/04/01 21:11:28 serassio Exp $
+ * $Id: DiskThreadsDiskFile.cc,v 1.6 2006/05/23 18:24:41 wessels Exp $
*
* DEBUG: section 79 Disk IO Routines
* AUTHOR: Robert Collins
{
CBDATA_INIT_TYPE(DiskThreadsDiskFile);
DiskThreadsDiskFile *result = cbdataAlloc(DiskThreadsDiskFile);
- squidaio_init();
+ /*
+ * We used to call squidaio_init() here, but if the first transaction
+ * is to unlink a file (e.g., if Squid starts up over the disk space
+ * limit) then "squidaio" won't be initialized yet.
+ */
return result;
}
/*
- * $Id: DiskThreadsIOStrategy.cc,v 1.4 2005/09/25 21:02:32 hno Exp $
+ * $Id: DiskThreadsIOStrategy.cc,v 1.5 2006/05/23 18:24:41 wessels Exp $
*
* DEBUG: section 79 Squid-side Disk I/O functions.
* AUTHOR: Robert Collins
aioStats, 0, 1);
initialised = true;
+
+ /*
+ * We'd like to call squidaio_init() here, but the configuration
+ * hasn't been parsed yet and we don't know how many cache_dirs
+ * there are, which means we don't know how many threads to start.
+ */
}
void
/*
- * $Id: aiops.cc,v 1.8 2006/05/15 13:39:57 hno Exp $
+ * $Id: aiops.cc,v 1.9 2006/05/23 18:24:41 wessels Exp $
*
* DEBUG: section 43 AIOPS
* AUTHOR: Stewart Forster <slf@connect.com.au>
int
squidaio_open(const char *path, int oflag, mode_t mode, squidaio_result_t * resultp)
{
+ squidaio_init();
squidaio_request_t *requestp;
requestp = (squidaio_request_t *)squidaio_request_pool->alloc();
squidaio_stat(const char *path, struct stat *sb, squidaio_result_t * resultp)
{
+ squidaio_init();
squidaio_request_t *requestp;
requestp = (squidaio_request_t *)squidaio_request_pool->alloc();
int
squidaio_truncate(const char *path, off_t length, squidaio_result_t * resultp)
{
+ squidaio_init();
squidaio_request_t *requestp;
requestp = (squidaio_request_t *)squidaio_request_pool->alloc();
int
squidaio_unlink(const char *path, squidaio_result_t * resultp)
{
+ squidaio_init();
squidaio_request_t *requestp;
requestp = (squidaio_request_t *)squidaio_request_pool->alloc();