[eclipse-clp-users] how to recompile kernel/io to wrap remote_connect_*

From: Yngwie <yngwie_at_...164...>
Date: Fri, 30 Jan 2009 18:38:20 +0100
Hi there, I'm a new user building an expert system backed by
ECLiPSe and accessible from a web application written in PHP.
I have implemented the remote protocol and EXDR parsing/generation
described in the user manual on the PHP side and performed
some tests with success.

Now, the problem is that I need to socket/bind/listen and
put the application on the ECLiPSe side in the classic "accept"
infinite loop waiting for client connections (for now, let's ignore
any performance issue may derive from such an iterative server).

I had some troubles in doing this because the socket/bind/listen
(performed by new_socket_server/3) and the generation of a valid,
not existing peer name (performed by new_remote_peer_name/1) are coupled
in remote_connect_setup/3, and the generated peer name has to be
passed as an argument in remote_connect_accept/6.
Thus, I can't generate a peer name for a new connection
without to bind to a socket that (at the second turn in the loop)
is already bound and so an exception is raised.

I tried to split remote_connect_setup/3 and remote_connect_accept/6
in two predicates, and in this case the "already bound exception" is
raised occasionally (I guess it depends upon when the close() syscall is invoked);
so this is not a solution.

Another problem I have is that I wish to control the backlog queue size
for the socket created in remote_connect_setup, because the default
hardcoded value of 2 may be too small in a web application context.

A solution to both may be define new remote_protocol_setup and
remote_protocol_accept predicates, but sepia_kernel module (reasonably)
does not expose all terms needed to write such predicates.

The last chance seems to add such predicates in Kernel/lib/io.pl.

How can I recompile only the kernel module to integrate such changes?

I'm working on a FreeBSD platform executing ECLiPSe binaries in
Linux emulation mode.

Thanks in advance,
Andrea Montemaggio
Received on Fri Jan 30 2009 - 18:00:34 CET

This archive was generated by hypermail 2.3.0 : Tue Apr 16 2024 - 09:13:20 CEST