On Thu, 30 Dec 2010, Andrew Brunner wrote:

I'm developing a cross platform social computing platform that implements HTTP, 
XMPP, WebSockets (and more) part of the
core principals is to offer scalability across transports. When I started this 
project, about 4 years ago, it was under Delphi and
Win64; and I left Delphi to offer this product on MAC and *nix platforms.  
Well, I'm nearly ready to release but had to address a few
issues first.  
I have committed to deprecating polling in place of signaling and presently 
have no way of knowing when data has arrived or a socket
has been closed under every other OS other than Windows.  :-)

One of the biggest current issues is with abnormal latencies with regard to my 
cross platform implementation of sockets using a
application level polling mechanism.  Having tested server implements across 
various transports - I determined it was worth the effort
to re-introduce event driven signaling and deprecate polling.  I need to 
access kernel level code but have just starting reading about
caveats on *nixes.  
http://wiki.lazarus.freepascal.org/Main_Loop_Hooks

http://linux.derkeiler.com/Newsgroups/comp.os.linux.development.system/2003-10/0168.html

Presently, I have a cross platform mechanism for socket signals and 
"integrated" my windows code for Windows 32/64 builds.  Not much
testing was needed as I just borrowed code and ifdef Windows and included 
windows sockets which comes with signaling capabilities. 

I want to tie into some sort of system under Lazarus or FPC libraries that 
offer (high scale) cross platform support using signaling.
 I found "Main Loop Hooks" for Lazarus but wanted to know if it can be used for 
sockets and how scalable is it.  Anyone have any
comments or thoughts regarding this?  

It can be used with handles.


Anyone want to respond with some basic semantics regarding signals and socket 
handles under Linux/Unix?  

In short: on unix, you're better off with select() and friends.
(which is basically what the main loop hooks in lazarus do)

I have no knowledge of an actual signaling mechanism for data. epoll, select, poll all use a wait loop.

Michael.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to