ports/106526: [NEW PORT] devel/p5-IO-AIO: Asynchronous Input/Output

Gea-Suan Lin gslin at gslin.org
Sat Dec 9 12:20:11 UTC 2006


>Number:         106526
>Category:       ports
>Synopsis:       [NEW PORT] devel/p5-IO-AIO: Asynchronous Input/Output
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Dec 09 12:20:09 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Gea-Suan Lin
>Release:        FreeBSD 6.1-RELEASE-p8 i386
>Organization:
>Environment:
System: FreeBSD netnews.NCTU.edu.tw 6.1-RELEASE-p8 FreeBSD 6.1-RELEASE-p8 #0: Fri Sep 29 03:41:50 CST 2006
>Description:
This module implements asynchronous I/O using whatever means your
operating system supports.

Asynchronous means that operations that can normally block your
program (e.g. reading from disk) will be done asynchronously: the
operation will still block, but you can do something else in the
meantime. This is extremely useful for programs that need to stay
interactive even when doing heavy I/O (GUI programs, high performance
network servers etc.), but can also be used to easily do operations in
parallel that are normally done sequentially, e.g. stat'ing many files,
which is much faster on a RAID volume or over NFS when you do a number
of stat operations concurrently.

While most of this works on all types of file descriptors (for example
sockets), using these functions on file descriptors that support
nonblocking operation (again, sockets, pipes etc.) is very inefficient
or might not work (aio_read fails on sockets/pipes/fifos). Use an
event loop for that (such as the Event module): IO::AIO will naturally
fit into such an event loop itself.

WWW:	http://search.cpan.org/dist/IO-AIO/

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- p5-IO-AIO-2.2.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	p5-IO-AIO
#	p5-IO-AIO/pkg-descr
#	p5-IO-AIO/Makefile
#	p5-IO-AIO/pkg-plist
#	p5-IO-AIO/distinfo
#
echo c - p5-IO-AIO
mkdir -p p5-IO-AIO > /dev/null 2>&1
echo x - p5-IO-AIO/pkg-descr
sed 's/^X//' >p5-IO-AIO/pkg-descr << 'END-of-p5-IO-AIO/pkg-descr'
XThis module implements asynchronous I/O using whatever means your
Xoperating system supports.
X
XAsynchronous means that operations that can normally block your
Xprogram (e.g. reading from disk) will be done asynchronously: the
Xoperation will still block, but you can do something else in the
Xmeantime. This is extremely useful for programs that need to stay
Xinteractive even when doing heavy I/O (GUI programs, high performance
Xnetwork servers etc.), but can also be used to easily do operations in
Xparallel that are normally done sequentially, e.g. stat'ing many files,
Xwhich is much faster on a RAID volume or over NFS when you do a number
Xof stat operations concurrently.
X
XWhile most of this works on all types of file descriptors (for example
Xsockets), using these functions on file descriptors that support
Xnonblocking operation (again, sockets, pipes etc.) is very inefficient
Xor might not work (aio_read fails on sockets/pipes/fifos). Use an
Xevent loop for that (such as the Event module): IO::AIO will naturally
Xfit into such an event loop itself.
X
XWWW:	http://search.cpan.org/dist/IO-AIO/
END-of-p5-IO-AIO/pkg-descr
echo x - p5-IO-AIO/Makefile
sed 's/^X//' >p5-IO-AIO/Makefile << 'END-of-p5-IO-AIO/Makefile'
X# New ports collection makefile for:	p5-IO-AIO
X# Date created:		2006-12-09
X# Whom:			Gea-Suan Lin <gslin at gslin.org>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	IO-AIO
XPORTVERSION=	2.2
XCATEGORIES=	devel perl5
XMASTER_SITES=	CPAN
XMASTER_SITE_SUBDIR=	IO
XPKGNAMEPREFIX=	p5-
X
XMAINTAINER=	gslin at gslin.org
XCOMMENT=	Asynchronous Input/Output
X
XPERL_CONFIGURE=	yes
X
XMAN3=		IO::AIO.3
X
X.include <bsd.port.pre.mk>
X
Xpost-patch:
X	${PERL} -e 's,-lpthreads?,${PTHREAD_LIBS},g' ${WRKSRC}/Makefile.PL
X
X.include <bsd.port.post.mk>
END-of-p5-IO-AIO/Makefile
echo x - p5-IO-AIO/pkg-plist
sed 's/^X//' >p5-IO-AIO/pkg-plist << 'END-of-p5-IO-AIO/pkg-plist'
X at comment $FreeBSD$
X%%SITE_PERL%%/%%PERL_ARCH%%/IO/AIO.pm
X%%SITE_PERL%%/%%PERL_ARCH%%/IO/autoconf.pm
X%%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO/.packlist
X%%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO/AIO.bs
X%%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO/AIO.so
X at dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO
X at dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/IO
X at dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/IO
END-of-p5-IO-AIO/pkg-plist
echo x - p5-IO-AIO/distinfo
sed 's/^X//' >p5-IO-AIO/distinfo << 'END-of-p5-IO-AIO/distinfo'
XMD5 (IO-AIO-2.2.tar.gz) = 373af7475b9097a16aebcc82242cabae
XSHA256 (IO-AIO-2.2.tar.gz) = cecdc7332f7c8272ec26364ba4c4cfd1ded9ad098623928ef45950fedb7450c9
XSIZE (IO-AIO-2.2.tar.gz) = 66607
END-of-p5-IO-AIO/distinfo
exit
--- p5-IO-AIO-2.2.shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list