From owner-freebsd-hackers Thu Dec 10 14:31:50 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA29969 for freebsd-hackers-outgoing; Thu, 10 Dec 1998 14:31:50 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from alive.znep.com (sense-sea-MegaSub-1-222.oz.net [216.39.144.222]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id OAA29964 for ; Thu, 10 Dec 1998 14:31:49 -0800 (PST) (envelope-from marcs@znep.com) Received: from localhost (marcs@localhost) by alive.znep.com (8.9.1/8.9.1) with ESMTP id OAA12874; Thu, 10 Dec 1998 14:30:34 -0800 (PST) (envelope-from marcs@znep.com) Date: Thu, 10 Dec 1998 14:30:34 -0800 (PST) From: Marc Slemko To: Alfred Perlstein cc: "Richard Seaman, Jr." , "hackers@freebsd.org" Subject: Re: pread/pwrite In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Thu, 10 Dec 1998, Alfred Perlstein wrote: > On Thu, 10 Dec 1998, Marc Slemko wrote: > > > On Thu, 10 Dec 1998, Richard Seaman, Jr. wrote: > > > > > I don't know if there is any interest in X/Open pread, pwrite > > > calls. Essentially, they implement atomic seek/write and > > > atomic seek/read calls. They are more useful in threaded > > > apps where you would need a file lock between a seek/write > > > or seek/read, but even in single threaded apps can allow > > > you to avoid a syscall. > > > > > > Attached is an implementation. If there is interest, and > > > if the implementation meets with approval, I'll submit > > > a PR. Or, perhaps someone would want to commit it directly. > > > > > > I welcome any comments. > > > > (not necessarily addressed specifically at pread/pwrite, but it does > > apply to it because of how it is used...) > > > > Where is the locking if multiple threads are reading and/or writing > > from or to the same descriptor at the same time? If you have x > > threads reading from a descriptor opened from a file on disk, do > > x-1 of them have to wait until the first one finishes before they can > > do anything? > > > > What about with mixed reading/writing? > > >From looking at the diffs what I think what he implemented was a > seek+(write|read) in one syscall. > > Meaning you do not have to lock an fd when seeking and then writing since No, I'm talking about how the kernel handles it. It needs to do various amounts of locking in various areas. When there are kernel threads that people are writing multithreaded programs to use, this matters a lot. Yes, pwrite and pread are good to have. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message