What happened to FileOpen in trunk?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

What happened to FileOpen in trunk?

Giuliano Colla
In multi-thread applications in Linux environment, I'm using FIFO's for
communicating between threads.

In order to make it work properly, the FIFO must be opened in non
blocking mode. Up to fpc 3.0.4 I've been successfully using code like this:

fdc := FileOpen(myFifo,fmOpenWrite or O_NONBLOCK);

now in trunk the call returns forever an EAGAIN error (as if the
O_NOBLOCK flag was not forwarded to OS), and to make it work I'm forced
to use a call to fpOpen:

fdc := fpOpen(myFifo,O_RDWR or O_NONBLOCK);

which works properly.

Is this an fpc new feature or a bug?

Giuliano


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: What happened to FileOpen in trunk?

Michael Van Canneyt


On Wed, 27 Dec 2017, Giuliano Colla wrote:

> In multi-thread applications in Linux environment, I'm using FIFO's for
> communicating between threads.
>
> In order to make it work properly, the FIFO must be opened in non
> blocking mode. Up to fpc 3.0.4 I've been successfully using code like this:
>
> fdc := FileOpen(myFifo,fmOpenWrite or O_NONBLOCK);
>
> now in trunk the call returns forever an EAGAIN error (as if the
> O_NOBLOCK flag was not forwarded to OS), and to make it work I'm forced
> to use a call to fpOpen:
>
> fdc := fpOpen(myFifo,O_RDWR or O_NONBLOCK);
>
> which works properly.
>
> Is this an fpc new feature or a bug?

Your code was simply lucky to work in the beginning.

It's not guaranteed that passing OS-Specific options to FileOpen will work.

using fpOpen is the correct method, since you're using OS-specific features.

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: What happened to FileOpen in trunk?

Giuliano Colla
Il 27/12/2017 18:40, Michael Van Canneyt ha scritto:

> Your code was simply lucky to work in the beginning.
>
> It's not guaranteed that passing OS-Specific options to FileOpen will
> work.
>
> using fpOpen is the correct method, since you're using OS-specific
> features.

Understood. Thanks a lot.

Giuliano

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal