aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authormiwi <miwi@FreeBSD.org>2006-12-09 23:48:32 +0800
committermiwi <miwi@FreeBSD.org>2006-12-09 23:48:32 +0800
commit8f435ed783cdf1e0a96a8125afce82c7b3ff8249 (patch)
tree2c0909b1bbaf80672d77685bf7de202fbc0a84fd /devel
parenta452bd2eadfc291b353c1ddc1844cfb232480c9b (diff)
downloadfreebsd-ports-gnome-8f435ed783cdf1e0a96a8125afce82c7b3ff8249.tar.gz
freebsd-ports-gnome-8f435ed783cdf1e0a96a8125afce82c7b3ff8249.tar.zst
freebsd-ports-gnome-8f435ed783cdf1e0a96a8125afce82c7b3ff8249.zip
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/ Notes: For index unbreak. PR: ports/106526 Submitted by: Gea-Suan Lin <gslin at gslin.org>
Diffstat (limited to 'devel')
-rw-r--r--devel/Makefile1
-rw-r--r--devel/p5-IO-AIO/Makefile31
-rw-r--r--devel/p5-IO-AIO/distinfo3
-rw-r--r--devel/p5-IO-AIO/pkg-descr21
-rw-r--r--devel/p5-IO-AIO/pkg-plist9
5 files changed, 65 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index a3655c4f3d4b..125f34c34e72 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1138,6 +1138,7 @@
SUBDIR += p5-Heap-Simple-XS
SUBDIR += p5-Hook-LexWrap
SUBDIR += p5-IO
+ SUBDIR += p5-IO-AIO
SUBDIR += p5-IO-All
SUBDIR += p5-IO-Capture
SUBDIR += p5-IO-CaptureOutput
diff --git a/devel/p5-IO-AIO/Makefile b/devel/p5-IO-AIO/Makefile
new file mode 100644
index 000000000000..c317c995c6cf
--- /dev/null
+++ b/devel/p5-IO-AIO/Makefile
@@ -0,0 +1,31 @@
+# New ports collection makefile for: p5-IO-AIO
+# Date created: 2006-12-09
+# Whom: Gea-Suan Lin <gslin@gslin.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= IO-AIO
+PORTVERSION= 2.2
+CATEGORIES= devel perl5
+MASTER_SITES= CPAN
+MASTER_SITE_SUBDIR= IO
+PKGNAMEPREFIX= p5-
+
+MAINTAINER= gslin@gslin.org
+COMMENT= Asynchronous Input/Output
+
+PERL_CONFIGURE= yes
+
+MAN3= IO::AIO.3
+
+.include <bsd.port.pre.mk>
+
+.if ${PERL_LEVEL} < 500600
+IGNORE= requires perl 5.6.0 or later. Install lang/perl5.8 and try again
+.endif
+
+post-patch:
+ ${PERL} -e 's,-lpthreads?,${PTHREAD_LIBS},g' ${WRKSRC}/Makefile.PL
+
+.include <bsd.port.post.mk>
diff --git a/devel/p5-IO-AIO/distinfo b/devel/p5-IO-AIO/distinfo
new file mode 100644
index 000000000000..2f65d488852d
--- /dev/null
+++ b/devel/p5-IO-AIO/distinfo
@@ -0,0 +1,3 @@
+MD5 (IO-AIO-2.2.tar.gz) = 373af7475b9097a16aebcc82242cabae
+SHA256 (IO-AIO-2.2.tar.gz) = cecdc7332f7c8272ec26364ba4c4cfd1ded9ad098623928ef45950fedb7450c9
+SIZE (IO-AIO-2.2.tar.gz) = 66607
diff --git a/devel/p5-IO-AIO/pkg-descr b/devel/p5-IO-AIO/pkg-descr
new file mode 100644
index 000000000000..2034f71ee05e
--- /dev/null
+++ b/devel/p5-IO-AIO/pkg-descr
@@ -0,0 +1,21 @@
+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/
diff --git a/devel/p5-IO-AIO/pkg-plist b/devel/p5-IO-AIO/pkg-plist
new file mode 100644
index 000000000000..0369cdbaf381
--- /dev/null
+++ b/devel/p5-IO-AIO/pkg-plist
@@ -0,0 +1,9 @@
+@comment $FreeBSD$
+%%SITE_PERL%%/%%PERL_ARCH%%/IO/AIO.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/IO/autoconf.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO/.packlist
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO/AIO.bs
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO/AIO.so
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/IO/AIO
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/IO
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/IO