in reply to Re^2: Threads: How to share a FileHandle to Write
in thread Threads: How to share a FileHandle to Write
It looks like your C-runtime libraries or Perl implementation is broken(1).
I cannot reproduce your results on my platform:
c:\test>for /l %i in (1,1,50) do @jun STOP: Tue May 19 12:18:20 2009 64000 out.txt STOP: Tue May 19 12:18:21 2009 64000 out.txt STOP: Tue May 19 12:18:22 2009 64000 out.txt STOP: Tue May 19 12:18:22 2009 64000 out.txt STOP: Tue May 19 12:18:23 2009 64000 out.txt STOP: Tue May 19 12:18:24 2009 64000 out.txt STOP: Tue May 19 12:18:25 2009 64000 out.txt STOP: Tue May 19 12:18:26 2009 64000 out.txt STOP: Tue May 19 12:18:26 2009 64000 out.txt STOP: Tue May 19 12:18:27 2009 64000 out.txt STOP: Tue May 19 12:18:28 2009 64000 out.txt STOP: Tue May 19 12:18:29 2009 64000 out.txt STOP: Tue May 19 12:18:29 2009 64000 out.txt STOP: Tue May 19 12:18:30 2009 64000 out.txt STOP: Tue May 19 12:18:31 2009 64000 out.txt STOP: Tue May 19 12:18:32 2009 64000 out.txt STOP: Tue May 19 12:18:32 2009 64000 out.txt STOP: Tue May 19 12:18:33 2009 64000 out.txt STOP: Tue May 19 12:18:34 2009 64000 out.txt STOP: Tue May 19 12:18:35 2009 64000 out.txt STOP: Tue May 19 12:18:35 2009 64000 out.txt STOP: Tue May 19 12:18:36 2009 64000 out.txt STOP: Tue May 19 12:18:37 2009 64000 out.txt STOP: Tue May 19 12:18:38 2009 64000 out.txt STOP: Tue May 19 12:18:38 2009 64000 out.txt STOP: Tue May 19 12:18:39 2009 64000 out.txt STOP: Tue May 19 12:18:40 2009 64000 out.txt STOP: Tue May 19 12:18:41 2009 64000 out.txt STOP: Tue May 19 12:18:41 2009 64000 out.txt STOP: Tue May 19 12:18:42 2009 64000 out.txt STOP: Tue May 19 12:18:43 2009 64000 out.txt STOP: Tue May 19 12:18:44 2009 64000 out.txt STOP: Tue May 19 12:18:44 2009 64000 out.txt STOP: Tue May 19 12:18:45 2009 64000 out.txt STOP: Tue May 19 12:18:46 2009 64000 out.txt STOP: Tue May 19 12:18:47 2009 64000 out.txt STOP: Tue May 19 12:18:47 2009 64000 out.txt STOP: Tue May 19 12:18:48 2009 64000 out.txt STOP: Tue May 19 12:18:49 2009 64000 out.txt STOP: Tue May 19 12:18:50 2009 64000 out.txt STOP: Tue May 19 12:18:50 2009 64000 out.txt STOP: Tue May 19 12:18:51 2009 64000 out.txt STOP: Tue May 19 12:18:52 2009 64000 out.txt STOP: Tue May 19 12:18:52 2009 64000 out.txt STOP: Tue May 19 12:18:53 2009 64000 out.txt STOP: Tue May 19 12:18:54 2009 64000 out.txt STOP: Tue May 19 12:18:55 2009 64000 out.txt STOP: Tue May 19 12:18:56 2009 64000 out.txt STOP: Tue May 19 12:18:56 2009 64000 out.txt STOP: Tue May 19 12:18:57 2009 64000 out.txt
The only logical thing for CLONE to do for an open filehandle is dup() or dup2(), and according to the man pages for those calls:
They share locks, file position pointers and flags; for example, if the file position is modified by using lseek on one of the descriptors, the position is also changed for the other.NAME dup, dup2 - duplicate a file descriptor SYNOPSIS #include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd); DESCRIPTION dup and dup2 create a copy of the file descriptor oldfd. After successful return of dup or dup2, the old and new descrip +tors may be used interchangeably.The two descriptors do not share the close-on-exec flag, howeve +r.
1. That is, your platform is exhibiting unspecified--thought clearly defined--behaviour.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Threads: How to share a FileHandle to Write
by gulden (Monk) on May 19, 2009 at 14:45 UTC | |
by BrowserUk (Patriarch) on May 19, 2009 at 15:28 UTC | |
by gulden (Monk) on May 19, 2009 at 17:06 UTC | |
by BrowserUk (Patriarch) on May 19, 2009 at 18:16 UTC | |
by gulden (Monk) on May 22, 2009 at 10:08 UTC | |
|