Ah, reading this more clearly, yes this looks like a bug. ольга крыжановская <olga.kryzhanov...@gmail.com> wrote:
>On Fri, Feb 4, 2011 at 6:29 PM, David Korn <d...@research.att.com> wrote: >> Subject: ksh93 problem on opensolaris >> -------- >> >> I have been tracking down a problem that only seems to be reproducable >> on Solaris. >> >> The problem boils down to the behavior of >> llseek(fd, (off_t)0, SEEK_CUR) >> >> On must systems, this just returns the current stream offset. >> On solaris, it also seems adds 0 to the current offset and then calls >> llseek(fd , current_offset, SEEK_SET) >> >> Now, if another process is using this stream, this presents a >> race condition since it might move the stream pointer between >> the time that the offset is found and the time the SEEK_SET >> is called. >> >> This is what is happening the the case that I am tracking down. >> >> Is there anyway that solaris can change this behavior for offset 0? > >Solaris is the *only* operating system which acts this way. > >Linux, FreeBSD, NetBSD, Apple OS X, HP UX and Irix all have write sys >calls which are atomic to lseek/SEEK_CUR. > >In my opinion it can not be true that Solaris is the only operating >system which violates common sense in this usage case. The FreeBSD and >OpenBSD developers I consulted on IRC even consider this a serious >bug. > >Olga >-- > , _ _ , > { \/`o;====- Olga Kryzhanovska -====;o`\/ } >.----'-/`-/ olga.kryzhanov...@gmail.com \-`\-'----. > `'-..-| / http://twitter.com/fleyta \ |-..-'` > /\/\ Solaris/BSD//C/C++ programmer /\/\ > `--` `--` _______________________________________________ ksh93-integration-discuss mailing list ksh93-integration-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss