Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: Zac Medico <zmedico@g.o>
Subject: Re: multiprocessing.eclass: doing parallel work in bash
Date: Sat, 02 Jun 2012 13:39:16 -0700
On 06/02/2012 12:54 PM, Mike Frysinger wrote:

> # @FUNCTION: redirect_alloc_fd
> # @USAGE: <var> <file> [redirection]
> # @DESCRIPTION:
> # Find a free fd and redirect the specified file via it.  Store the new
> # fd in the specified variable.  Useful for the cases where we don't care
> # about the exact fd #.
> redirect_alloc_fd() {
> 	local var=$1 file=$2 redir=${3:-"<>"}
> 
> 	if [[ $(( (BASH_VERSINFO[0] << 8) + BASH_VERSINFO[1] )) -ge $(( (4 << 8) + 1 )) ]] ; then
> 		# Newer bash provides this functionality.
> 		eval "exec {${var}}${redir}'${file}'"
> 	else
> 		# Need to provide the functionality ourselves.
> 		local fd=10
> 		while :; do
> 			if [[ ! -L /dev/fd/${fd} ]] ; then
> 				eval "exec ${fd}${redir}'${file}'" && break
> 			fi
> 			[[ ${fd} -gt 1024 ]] && return 1 # sanity
> 			: $(( ++fd ))
> 		done
> 		: $(( ${var} = fd ))
> 	fi
> }

I launched up a GhostBSD livedvd to see what /dev/fd/ looks like on
FreeBSD, and it seems to contain plain character devices instead of
symlinks to character devices:

[ghostbsd@livecd ~]$ uname -a
FreeBSD livecd 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Sun Jan 15 17:17:43
AST 2012
root@...:/usr/obj/i386.i386/usr/src/sys/GHOSTBSD  i386
[ghostbsd@livecd ~]$ ls -l /dev/fd/
total 0
crw-rw-rw-  1 root  wheel    0,  19 Jun  2 20:15 0
crw-rw-rw-  1 root  wheel    0,  21 Jun  2 20:15 1
crw-rw-rw-  1 root  wheel    0,  23 Jun  2 20:15 2

-- 
Thanks,
Zac


Replies:
Re: multiprocessing.eclass: doing parallel work in bash
-- Mike Frysinger
References:
multiprocessing.eclass: doing parallel work in bash
-- Mike Frysinger
Re: multiprocessing.eclass: doing parallel work in bash
-- Mike Frysinger
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: multiprocessing.eclass: doing parallel work in bash
Next by thread:
Re: multiprocessing.eclass: doing parallel work in bash
Previous by date:
Re: multiprocessing.eclass: doing parallel work in bash
Next by date:
Last rites dev-perl/Cflow, dev-lang/eleven and net-im/silc-client


Updated Jun 29, 2012

Summary: Archive of the gentoo-dev mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.