[omniORB] OmniORB 4.04 windows bug !

Luke Deller ldeller at xplantechnology.com
Mon Aug 23 14:44:24 BST 2004


Renzo Tomaselli wrote:
>     ver. 4.04 cannot run properly on Windows.
> Methods SocketCollection::is/clear/setSelectable got a new initial test
> about socket n. not being higher than 2048 on Windows (sock >=
> SELECTABLE_FD_LIMIT).
...

Knowing that sockets can be higher than 2048 on Windows, the following code snippet from SocketCollection::Select looks terribly inefficient:

  int maxfd = 0;
  int fd = 0;
  while (total) {
    if (FD_ISSET(fd,&rfds)) {
      maxfd = fd;
      total--;
    }
    fd++;
  }

All this is to work out the appropriate first parameter for "select", which is ignored in Windows anyway.

I've noticed that omniORB performs several times worse on Windows than Linux (using simple microbenchmarks to repeatedly call a method using a TCP loopback connection).  I'm not sure whether this is because Windows TCP loopback is slow or because of inefficient code in omniORB like the above.

Regards,
Luke.



More information about the omniORB-list mailing list