ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/AIO.pm
(Generate patch)

Comparing IO-AIO/AIO.pm (file contents):
Revision 1.187 by root, Fri Feb 11 00:05:17 2011 UTC vs.
Revision 1.188 by root, Tue Feb 15 03:21:41 2011 UTC

182 aio_msync aio_mtouch aio_mlock aio_mlockall 182 aio_msync aio_mtouch aio_mlock aio_mlockall
183 aio_statvfs); 183 aio_statvfs);
184 184
185 our @EXPORT = (@AIO_REQ, qw(aioreq_pri aioreq_nice)); 185 our @EXPORT = (@AIO_REQ, qw(aioreq_pri aioreq_nice));
186 our @EXPORT_OK = qw(poll_fileno poll_cb poll_wait flush 186 our @EXPORT_OK = qw(poll_fileno poll_cb poll_wait flush
187 min_parallel max_parallel max_idle 187 min_parallel max_parallel max_idle idle_timeout
188 nreqs nready npending nthreads 188 nreqs nready npending nthreads
189 max_poll_time max_poll_reqs 189 max_poll_time max_poll_reqs
190 sendfile fadvise madvise 190 sendfile fadvise madvise
191 mmap munmap munlock munlockall); 191 mmap munmap munlock munlockall);
192 192
258 IO::AIO::max_poll_reqs $nreqs 258 IO::AIO::max_poll_reqs $nreqs
259 IO::AIO::max_poll_time $seconds 259 IO::AIO::max_poll_time $seconds
260 IO::AIO::min_parallel $nthreads 260 IO::AIO::min_parallel $nthreads
261 IO::AIO::max_parallel $nthreads 261 IO::AIO::max_parallel $nthreads
262 IO::AIO::max_idle $nthreads 262 IO::AIO::max_idle $nthreads
263 IO::AIO::idle_timeout $seconds
263 IO::AIO::max_outstanding $maxreqs 264 IO::AIO::max_outstanding $maxreqs
264 IO::AIO::nreqs 265 IO::AIO::nreqs
265 IO::AIO::nready 266 IO::AIO::nready
266 IO::AIO::npending 267 IO::AIO::npending
267 268
1525 1526
1526Under normal circumstances you don't need to call this function. 1527Under normal circumstances you don't need to call this function.
1527 1528
1528=item IO::AIO::max_idle $nthreads 1529=item IO::AIO::max_idle $nthreads
1529 1530
1530Limit the number of threads (default: 4) that are allowed to idle (i.e., 1531Limit the number of threads (default: 4) that are allowed to idle
1531threads that did not get a request to process within 10 seconds). That 1532(i.e., threads that did not get a request to process within the idle
1532means if a thread becomes idle while C<$nthreads> other threads are also 1533timeout (default: 10 seconds). That means if a thread becomes idle while
1533idle, it will free its resources and exit. 1534C<$nthreads> other threads are also idle, it will free its resources and
1535exit.
1534 1536
1535This is useful when you allow a large number of threads (e.g. 100 or 1000) 1537This is useful when you allow a large number of threads (e.g. 100 or 1000)
1536to allow for extremely high load situations, but want to free resources 1538to allow for extremely high load situations, but want to free resources
1537under normal circumstances (1000 threads can easily consume 30MB of RAM). 1539under normal circumstances (1000 threads can easily consume 30MB of RAM).
1538 1540
1539The default is probably ok in most situations, especially if thread 1541The default is probably ok in most situations, especially if thread
1540creation is fast. If thread creation is very slow on your system you might 1542creation is fast. If thread creation is very slow on your system you might
1541want to use larger values. 1543want to use larger values.
1544
1545=item IO::AIO::idle_timeout $seconds
1546
1547Sets the minimum idle timeout (default 10) after which worker threads are
1548allowed to exit. SEe C<IO::AIO::max_idle>.
1542 1549
1543=item IO::AIO::max_outstanding $maxreqs 1550=item IO::AIO::max_outstanding $maxreqs
1544 1551
1545This is a very bad function to use in interactive programs because it 1552This is a very bad function to use in interactive programs because it
1546blocks, and a bad way to reduce concurrency because it is inexact: Better 1553blocks, and a bad way to reduce concurrency because it is inexact: Better

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines