Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Aug 2008 17:16:12 -0700
From:      Alfred Perlstein <alfred@freebsd.org>
To:        Peter Jeremy <peterjeremy@optushome.com.au>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, Ed Schouten <ed@freebsd.org>, cvs-all@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   Re: cvs commit: src/sys/dev/io iodev.c
Message-ID:  <20080809001612.GN16977@elvis.mu.org>
In-Reply-To: <20080809001256.GL64458@server.vk2pj.dyndns.org>
References:  <200808081343.m78DhwYE068477@repoman.freebsd.org> <200808081226.32089.jhb@freebsd.org> <20080809001256.GL64458@server.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Peter Jeremy <peterjeremy@optushome.com.au> [080808 17:13] wrote:
> On 2008-Aug-08 12:26:31 -0400, John Baldwin <jhb@freebsd.org> wrote:
> >It should be setting D_TRACKCLOSE though so that close() reliably clears the 
> >flag even in single-threaded processes.  You can still get odd behavior if 
> >you explicitly open it twice in an app and then close one of the two fd's.  
> >You will no longer have IO permission even though you still have one fd open.  
> >However, if you do that I think you deserve what you asked for. :)
> 
> That behaviour may be legitimate:  Your code links with libraries foo and
> bar that each independently open /dev/io so they can frob different things
> in IO space.  libfoo needs ongoing access to device foo and so keeps its
> descriptor open.  libbar only needs once-off access to device bar and so
> closes /dev/io once it's finished its initialisation.  Libraries foo and
> bar are completely independent and shouldn't need to know anything about
> each other and your app shouldn't need to know that libraries it's using
> frob around in IO space.

Sort of the same problem with sysv style fcntl locks. :(


-- 
- Alfred Perlstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080809001612.GN16977>