Hi Peter,

Thank you so much for the help! I just tried it on a linux box and I can
confirm you that is a windows specific behaviour :(

> I tested it out (via csi -s mini-tcp-server.scm) and it kept looping and
> when I connected with telnet it started printing "Hola" to my telnet
> client.
>
> Is that the correct behaviour?

Yes it is, the thing is that "Hola" was a test and should happens no matter
what because is in a separate thread, but unfortunately the behaviour on
Windows is that it gets stopped by the read-line function.

> Perhaps you're running it from the REPL?  The standard input for csi is
> usually line-buffered, so it's the OS itself which might be blocking the
> process while reading from stdin for the next command to run.  This can
> be worked around on UNIX by installing the parley egg.  However, I don't
> know if this works on Windows, because of the above-mentioned FUBAR
> select() implementation.

I am not using the REPL because I noticed that it was blocking everything
unless I did a thread-join, so I opted to compile and test all the time
(like we do with our old friend C/C++ :)


> It shouldn't be, but our Windows implementation uses Winsock select(),
> which is really Microsoft's own "special" interpretation of POSIX select()
> which doesn't work on anything except sockets.  However, this *should*
> still work since you're only using tcp ports.

This makes a lot of sense, so I guess my only option is too debug the C++
side of the tcp implementation on Windows? Or do you know a workaround I
could try for this?

Thanks again for everything, All your comments had been very helpful

Cheers,

Pedro


On Wed, Sep 25, 2013 at 8:42 AM, Peter Bex <[email protected]> wrote:

> On Wed, Sep 25, 2013 at 05:21:57AM -0700, Pedro Melendez wrote:
> > Hi Peter!
> >
> > Thank you so much for your response!
> >
> > I don't understand then what I am doing wrong, this is what I have so
> > far:
> >
> >
> https://github.com/pmelendez/scheme-test-server/blob/master/mini-tcp-server.scm
> >
> > Please notice that the code is dirty because it is a work in progress
> > and I am kinda stuck.
>
> I tested it out (via csi -s mini-tcp-server.scm) and it kept looping and
> when I connected with telnet it started printing "Hola" to my telnet
> client.
>
> Is that the correct behaviour?
>
> The code itself looks fine to me, from a quick glance.
>
> > One detail I forgot to mention is that I am testing this on windows.
>
> That's a very important little detail :)  There are still some important
> glitches left on Windows, unfortunately.
>
> > Now after your explanation... Is it possible that the behavior is
> > platform-specific?
>
> It shouldn't be, but our Windows implementation uses Winsock select(),
> which is really Microsoft's own "special" interpretation of POSIX select()
> which doesn't work on anything except sockets.  However, this *should*
> still work since you're only using tcp ports.
>
> Perhaps you're running it from the REPL?  The standard input for csi is
> usually line-buffered, so it's the OS itself which might be blocking the
> process while reading from stdin for the next command to run.  This can
> be worked around on UNIX by installing the parley egg.  However, I don't
> know if this works on Windows, because of the above-mentioned FUBAR
> select() implementation.
>
> I hope this helps.
>
> Cheers,
> Peter
> --
> http://www.more-magic.net
>



-- 
T: +1 (416) - 357.5356
Skype ID: pmelendezu
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to