aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo-Chuan Hsieh <sunpoet@FreeBSD.org>2026-04-18 21:18:15 +0000
committerPo-Chuan Hsieh <sunpoet@FreeBSD.org>2026-04-18 21:18:15 +0000
commit9153d3be99647da4362c22c9a9ab4e5075e78380 (patch)
treed504372a5866fc13eff776ee7945d8bb7475bdce
parent7f4a795432528d90d517c3fe47d39e9a7be56b63 (diff)
devel/p5-Consumer-NonBlock: Add p5-Consumer-NonBlock 0.003
It is very easy to end up in a situation where a producer process produces data faster than a consumer process can read/process it resulting in the producer blocking on a full pipe buffer. This module allows 2 processes to share data similar to a pipe, but without the producer blocking due to full pipe buffers. A pipe is better in most situations, this is only useful if the producer needs to do many things and you cannot afford to block on a consumer. This is used by App::Yath to send data to a comparatively slow database upload process without blocking.
-rw-r--r--devel/Makefile1
-rw-r--r--devel/p5-Consumer-NonBlock/Makefile24
-rw-r--r--devel/p5-Consumer-NonBlock/distinfo3
-rw-r--r--devel/p5-Consumer-NonBlock/pkg-descr9
-rw-r--r--devel/p5-Consumer-NonBlock/pkg-plist2
5 files changed, 39 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index 95b6a0b86f96..a843e6645ede 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -2234,6 +2234,7 @@
SUBDIR += p5-Connector
SUBDIR += p5-Const-Exporter
SUBDIR += p5-Const-Fast
+ SUBDIR += p5-Consumer-NonBlock
SUBDIR += p5-Context-Preserve
SUBDIR += p5-Contextual-Return
SUBDIR += p5-Convert-Age
diff --git a/devel/p5-Consumer-NonBlock/Makefile b/devel/p5-Consumer-NonBlock/Makefile
new file mode 100644
index 000000000000..93080eace059
--- /dev/null
+++ b/devel/p5-Consumer-NonBlock/Makefile
@@ -0,0 +1,24 @@
+PORTNAME= Consumer-NonBlock
+PORTVERSION= 0.003
+CATEGORIES= devel perl5
+MASTER_SITES= CPAN
+MASTER_SITE_SUBDIR= CPAN:EXODIST
+PKGNAMEPREFIX= p5-
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Send data between processes without blocking
+WWW= https://metacpan.org/dist/Consumer-NonBlock
+
+LICENSE= ART10 GPLv1+
+LICENSE_COMB= dual
+LICENSE_FILE_GPLv1+ = ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${RUN_DEPENDS}
+RUN_DEPENDS= p5-Object-HashBase>=0:devel/p5-Object-HashBase
+
+USES= perl5
+USE_PERL5= configure
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/devel/p5-Consumer-NonBlock/distinfo b/devel/p5-Consumer-NonBlock/distinfo
new file mode 100644
index 000000000000..1443d5a8f142
--- /dev/null
+++ b/devel/p5-Consumer-NonBlock/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1775587092
+SHA256 (Consumer-NonBlock-0.003.tar.gz) = 117906209393159511954db4d51115444ea9e6a5ea5a2c3c8cdbdcf0c229162d
+SIZE (Consumer-NonBlock-0.003.tar.gz) = 16932
diff --git a/devel/p5-Consumer-NonBlock/pkg-descr b/devel/p5-Consumer-NonBlock/pkg-descr
new file mode 100644
index 000000000000..90a2e627738e
--- /dev/null
+++ b/devel/p5-Consumer-NonBlock/pkg-descr
@@ -0,0 +1,9 @@
+It is very easy to end up in a situation where a producer process produces data
+faster than a consumer process can read/process it resulting in the producer
+blocking on a full pipe buffer. This module allows 2 processes to share data
+similar to a pipe, but without the producer blocking due to full pipe buffers.
+
+A pipe is better in most situations, this is only useful if the producer needs
+to do many things and you cannot afford to block on a consumer. This is used by
+App::Yath to send data to a comparatively slow database upload process without
+blocking.
diff --git a/devel/p5-Consumer-NonBlock/pkg-plist b/devel/p5-Consumer-NonBlock/pkg-plist
new file mode 100644
index 000000000000..08635f225713
--- /dev/null
+++ b/devel/p5-Consumer-NonBlock/pkg-plist
@@ -0,0 +1,2 @@
+%%SITE_PERL%%/Consumer/NonBlock.pm
+%%PERL5_MAN3%%/Consumer::NonBlock.3.gz