On 11/1/07, Marc Santhoff <[EMAIL PROTECTED]> wrote: > Am Donnerstag, den 01.11.2007, 00:45 +0200 schrieb ik: > > Hi List, > > > > I have a weird problem. the "fpWrite" is too "slow" for FPC code. When > > I have the same exact code in C that writes a big amount of buffers of > > the same size with the same content. It seems that the fpWrite is way > > too fast, and the can't handle another call in the loop, and I need to > > slow down the loop using usleep. > > At the beginning I thought that it was a problem with fpWrite, so I > > created my own binding, but still the problem is the same. > > > > Except then the fact that it seems that FPC is much faster the GCC, > > any other ideas for such a behavior and what might be the reasons for > > it ? > > > > A POC for such code btw, can be as follows: > > > > Pascal: > > ... > > while not EOF(f) do > > begin > > readln(f,s); > > fpwrite(f2, S[0], length(S)); > > end; > > .... > > > > C: > > ... > > while (! feof(f)) { > > s_size = fread(f, s, MAX_BUFFER); > > write(f2, s, s_size); > > } > > ... > > What error do you get? Lastly I had something similar with fpc writing > to fast to a non-blocking stderr channel. I haven't had time to do for > my code, but if you get "ressource temporartily unavailable"-like errors > switching the file to blocking mode might help. > > Something like > > fcntl(fileno(stderr), F_GETFL) & O_NONBLOCK > > or the pascal equivalent should do.
I'm getting -1 from fpWrite for a "long" period of time, like 6-7 loop returns before it can continue getting the my next content, only to have the same problem repeated... > > HTH, > Marc > Ido -- http://ik.homelinux.org/ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal