chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] All threads are blocking by I/O


From: Pedro Melendez
Subject: Re: [Chicken-users] All threads are blocking by I/O
Date: Wed, 25 Sep 2013 10:57:40 -0400

Hey Peter,

> You don't have to; like I said you can just run "csi -s SCRIPT.SCM"

That's a nice hint, thanks!

> No, sorry.  I'm afraid the bug is known; we should be using something
> like WaitForMultipleObjects() instead of select().  The former is
> supposed to work on any object, not just sockets.  Unfortunately,
> I've been told this will require substantial rework of CHICKEN's
> internals because WaitForMultipleObjects() is callback-based, which
> is fundamentally different from the way POSIX select() and poll() work.
>
> We'll need someone who is knowledgeable enough about both Windows and
> CHICKEN and willing to spend time on implementing/reworking this.
> Unfortunately, AFAIK there's nobody in the community who is willing
> to do this.

Oh well, that's unfortunately :( The server would run at the end in a Linux box, but I need to be able to test it on windows
during the development.

I am willing to spend time on fixing this, but I am not very knowledgeable on Chicken internals so I am not sure how useful (or fast enough) would be my help.

Thanks for everything Peter...


Cheers,

Pedro


On Wed, Sep 25, 2013 at 10:31 AM, Peter Bex <address@hidden> wrote:
On Wed, Sep 25, 2013 at 09:12:14AM -0400, Pedro Melendez wrote:
> Hi Peter,
>
> Thank you so much for the help!

Hi Pedro,

You're most welcome!

> I just tried it on a linux box and I can
> confirm you that is a windows specific behaviour :(

I was afraid of that.

> 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++ :)

You don't have to; like I said you can just run "csi -s SCRIPT.SCM"

> > 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?

No, sorry.  I'm afraid the bug is known; we should be using something
like WaitForMultipleObjects() instead of select().  The former is
supposed to work on any object, not just sockets.  Unfortunately,
I've been told this will require substantial rework of CHICKEN's
internals because WaitForMultipleObjects() is callback-based, which
is fundamentally different from the way POSIX select() and poll() work.

We'll need someone who is knowledgeable enough about both Windows and
CHICKEN and willing to spend time on implementing/reworking this.
Unfortunately, AFAIK there's nobody in the community who is willing
to do this.

Cheers,
Peter
--
http://www.more-magic.net



--
T: +1 (416) - 357.5356
Skype ID: pmelendezu



reply via email to

[Prev in Thread] Current Thread [Next in Thread]